Passed
Push — dev ( 3ac626...71cb7d )
by Konstantinos
01:24
created

conftest.datapoints()   A

Complexity

Conditions 1

Size

Total Lines 10
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 8
dl 0
loc 10
rs 10
c 0
b 0
f 0
cc 1
nop 3
1
import os
2
import pytest
3
4
5
my_dir = os.path.dirname(os.path.realpath(__file__))
6
7
####### Files and folders
8
@pytest.fixture
9
def tests_root_dir():
10
    return my_dir
11
12
@pytest.fixture
13
def tests_data_root(tests_root_dir):
14
    return os.path.join(tests_root_dir, 'dts')
15
16
17
@pytest.fixture
18
def sample_json(tests_data_root):
19
    return os.path.join(tests_data_root, 'sample-strains.jl')
20
21
@pytest.fixture
22
def sample_collaped_json(tests_data_root):
23
    return os.path.join(tests_data_root, 'sample-strains-colapsed.jl')
24
25
26
@pytest.fixture()
27
def test_json_data(sample_json):
28
    return {
29
        'file_path': sample_json,
30
        'nb_lines': 100,
31
        'attributes': {'flavors', 'name', 'medical', 'description', 'image_urls', 'parents', 'negatives', 'grow_info', '_id', 'type', 'image_paths', 'effects'},
32
    }
33
34
35
@pytest.fixture
36
def somagic():
37
    from green_magic import init_so_magic
38
    _ = init_so_magic()
39
    return _
40
41
42
@pytest.fixture
43
def data_manager():
44
    def getter():
45
        from green_magic.data import init_data_manager
46
        from green_magic.data.backend import init_backend
47
48
        data_manager = init_data_manager(init_backend(engine_type='pd'))
49
50
        datapoints_fact = data_manager.backend.datapoints_factory
51
        cmd_fact = data_manager.backend.engine.command_factory
52
53
        # test 1
54
        from green_magic.data.dataset import DatapointsFactory
55
        from green_magic.data.command_factories import MagicCommandFactory
56
57
        assert isinstance(datapoints_fact, DatapointsFactory)
58
        assert isinstance(cmd_fact, MagicCommandFactory)
59
60
        subjects = [datapoints_fact.subject, cmd_fact, data_manager.phi_class.subject]
61
        assert len(set([id(x._observers) for x in subjects])) == len(subjects)
62
63
        assert datapoints_fact.subject._observers[0] == data_manager.backend.datapoints_manager
64
        assert cmd_fact._observers[0] == data_manager.commands_manager.command.accumulator
65
        assert data_manager.phi_class.subject._observers[0] == data_manager.built_phis
66
67
        print(f"DTP FCT OBS: [{', '.join(str(_) for _ in datapoints_fact.subject._observers)}]")
68
        print(f"CMD FCT OBS: [{', '.join(str(_) for _ in cmd_fact._observers)}]")
69
        print(f"PHIFUNC class OBS: [{', '.join(str(_) for _ in data_manager.phi_class.subject._observers)}]")
70
        assert all([len(x._observers) == 1 for x in subjects])
71
        return data_manager
72
73
    return getter
74
75
76
# Helpers
77
@pytest.fixture
78
def factories():
79
    def factories_dict(data_manager_instance):
80
        return {'cmd': DataEngine.test_pd.command_factory}
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable DataEngine does not seem to be defined.
Loading history...