Passed
Pull Request — master (#1)
by Konstantinos
59s
created

test_termination_condition_adapter.broadcaster_class()   A

Complexity

Conditions 2

Size

Total Lines 22
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 16
dl 0
loc 22
rs 9.6
c 0
b 0
f 0
cc 2
nop 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A test_termination_condition_adapter.test_adapter() 0 11 1
A test_termination_condition_adapter.test_objects() 0 6 2
1
import pytest
2
3
@pytest.fixture
4
def termination_condition_adapter(termination_condition):
5
    from artificial_artwork.termination_condition_adapter import TerminationConditionAdapterFactory
6
    termination_condition_instance = termination_condition('max-iterations', 4)
7
    return TerminationConditionAdapterFactory.create('max-iterations', termination_condition_instance)
8
9
10
11
@pytest.fixture
12
def test_objects(broadcaster_class, termination_condition_adapter):
13
    from artificial_artwork.utils.notification import Subject
14
    return type('O', (), {
15
        'broadcaster': broadcaster_class(Subject(), lambda: termination_condition_adapter.satisfied),
16
        'adapter': termination_condition_adapter
17
    })
18
19
20
def test_adapter(test_objects):
21
    # subscribe adapter to broadcaster
22
    test_objects.broadcaster.subject.attach(test_objects.adapter)
23
24
    # select a loop function (from test implementations)
25
26
    # iterate
27
    iterations = test_objects.broadcaster.iterate()
28
29
    # assert iterations completed are the expected nb of oiterations
30
    assert iterations == 4
31