fastest.test_compiler.compile_tests   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 69
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 4
eloc 18
dl 0
loc 69
rs 10
c 0
b 0
f 0

2 Functions

Rating   Name   Duplication   Size   Complexity  
A create_test_class() 0 34 1
A add_imports_for_test_case() 0 28 3
1
from fastest.constants import Content, Keys
2
from fastest.utils import to_camel_case
3
4
5
def add_imports_for_test_case(test, imports):
6
    """
7
    ---
8
    examples:
9
10
    @need
11
    from fastest.constants import TestBodies
12
    @end
13
14
    @let
15
    empty_test = { 'imports': None }
16
    test = { 'imports': ['from datetime import datetime'] }
17
    imports = {'import numpy as np'}
18
    updated_imports = {'import numpy as np', 'from datetime import datetime'}
19
    @end
20
21
    1) add_imports_for_test_case(empty_test, imports) -> imports
22
    2) add_imports_for_test_case(test, imports) -> updated_imports
23
    ---
24
    :param test: dict
25
    :param imports: set
26
    :return: set
27
    """
28
    if test.get(Keys.IMPORTS) is None:
29
        return imports
30
    for import_statement in test.get(Keys.IMPORTS):
31
        imports.add(import_statement)
32
    return imports
33
34
35
def create_test_class(imports, contents, deps_import, function_object, root_module_name):
36
    """
37
    ----
38
    examples:
39
40
    @need
41
    from fastest.constants import TestBodies
42
    @end
43
44
    @let
45
    imports = {'import random'}
46
    contents = ['']
47
    deps_import = 'fastest/__main__'
48
    function_object = TestBodies.MOCK_FUNCTION_OBJECT
49
    root_module_name = 'fastest'
50
    @end
51
52
    1) create_test_class(imports, contents, deps_import, function_object, root_module_name) -> TestBodies.CREATE_TEST_CLASS_RESULT
53
    ----
54
    :param imports: set
55
    :param contents: list
56
    :param deps_import: str
57
    :param function_object: dict
58
    :param root_module_name: str
59
    :return: tuple
60
    """
61
    imports.add(Content.IMPORT_UNITTEST)
62
    imports.add(Content.DEPS_IMPORT_TEMPLATE.format(deps_import, function_object.get(Keys.NAME)))
63
    camel_cased_root_module_name = to_camel_case(root_module_name)
64
    camel_cased_function_name = to_camel_case(function_object.get(Keys.NAME, ''))
65
    contents.append(Content.CLASS_CREATE_TEMPLATE.format(
66
        camel_cased_root_module_name, camel_cased_function_name
67
    ))
68
    return imports, contents
69