Passed
Push — dev ( f24a39...26c35c )
by Konstantinos
01:24
created

test_event_data.test_event_data_passing()   A

Complexity

Conditions 1

Size

Total Lines 17
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 12
nop 0
dl 0
loc 17
rs 9.8
c 0
b 0
f 0
1
from software_patterns import Subject, Observer
2
3
def test_event_data_passing():
4
    class EventObserver(Observer):
5
        def __init__(self):
6
            self.received_data = None
7
        def update(self, subject):
8
            # Try to access event data
9
            self.received_data = getattr(subject, 'event_data', None)
10
11
    subject = Subject([])
12
    observer = EventObserver()
13
    subject.attach(observer)
14
15
    # Set event data on subject
16
    subject.event_data = {'type': 'custom', 'payload': 42}
17
    subject.notify()
18
19
    assert observer.received_data == {'type': 'custom', 'payload': 42}
20