Coverage for class_generator/class_generator.py: 0%

47 statements  

« prev     ^ index     » next       coverage.py v7.10.1, created at 2025-07-29 12:03 +0300

1import ast 

2import filecmp 

3import json 

4import keyword 

5import os 

6import shlex 

7import shutil 

8import sys 

9import textwrap 

10import time 

11from concurrent.futures import Future, ThreadPoolExecutor, as_completed 

12from io import StringIO 

13from pathlib import Path 

14from tempfile import gettempdir 

15from typing import Any 

16 

17import cloup 

18import pytest 

19from cloup.constraints import If, IsSet, accept_none, require_one 

20from jinja2 import DebugUndefined, Environment, FileSystemLoader, meta 

21from kubernetes.dynamic import DynamicClient 

22from packaging.version import Version 

23from pyhelper_utils.shell import run_command 

24from rich.console import Console 

25from rich.panel import Panel 

26from rich.syntax import Syntax 

27from rich.table import Table 

28from simple_logger.logger import get_logger 

29 

30from fake_kubernetes_client.dynamic_client import FakeDynamicClient 

31from ocp_resources.resource import Resource, get_client 

32from ocp_resources.utils.schema_validator import SchemaValidator 

33from ocp_resources.utils.utils import convert_camel_case_to_snake_case 

34 

35# Import from refactored modules 

36from class_generator.utils import ResourceScanner, sanitize_python_name, get_latest_version 

37from class_generator.constants import ( 

38 SPEC_STR, 

39 FIELDS_STR, 

40 TESTS_MANIFESTS_DIR, 

41 SCHEMA_DIR, 

42 RESOURCES_MAPPING_FILE, 

43 MISSING_DESCRIPTION_STR, 

44 PYTHON_KEYWORD_MAPPINGS, 

45 VERSION_PRIORITY, 

46 END_OF_GENERATED_CODE, 

47) 

48from class_generator.core.schema import ( 

49 read_resources_mapping_file, 

50 extract_group_kind_version, 

51 update_kind_schema, 

52 get_server_version as get_server_version_from_client, 

53 build_namespacing_dict, 

54) 

55from class_generator.core.discovery import ( 

56 discover_cluster_resources, 

57 discover_generated_resources, 

58) 

59from class_generator.core.coverage import ( 

60 analyze_coverage, 

61 generate_report, 

62 get_server_version, 

63 get_client_binary, 

64) 

65from class_generator.core.generator import ( 

66 class_generator, 

67 generate_resource_file_from_dict, 

68) 

69from class_generator.parsers.explain_parser import parse_explain 

70from class_generator.parsers.type_parser import ( 

71 types_generator, 

72 get_property_schema, 

73 prepare_property_dict, 

74 format_description, 

75) 

76from class_generator.parsers.user_code_parser import parse_user_code_from_file 

77from class_generator.formatters.template_renderer import render_jinja_template 

78from class_generator.formatters.file_writer import write_and_format_rendered 

79from class_generator.tests.test_generation import generate_class_generator_tests 

80from class_generator.cli import main 

81 

82# Set global logging 

83LOGGER = get_logger(name="class_generator") 

84 

85 

86if __name__ == "__main__": 

87 main()