Passed
Push — master ( 74a04b...775f07 )
by Vinicius
04:04 queued 32s
created

TestKytosEvent.setup_method()   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 2
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 2
nop 1
dl 0
loc 3
ccs 2
cts 2
cp 1
crap 1
rs 10
c 0
b 0
f 0
1
"""Test kytos.core.events module."""
2 1
import json
3 1
from datetime import datetime, timezone
4 1
from unittest.mock import MagicMock
5 1
from uuid import UUID
6
7 1
from kytos.core.events import KytosEvent
8
9
10 1
class TestKytosEvent:
11
    """KytosEvent tests."""
12
13 1
    def setup_method(self):
14
        """Instantiate a KytosEvent."""
15 1
        self.event = KytosEvent('kytos/core.any')
16
17 1
    def test__str__(self):
18
        """Test __str__ method."""
19 1
        assert str(self.event) == 'kytos/core.any'
20
21 1
    def test__repr__(self):
22
        """Test __repr__ method."""
23 1
        self.event.content = {"destination": "dest",
24
                              "source": "src",
25
                              "message": "msg"}
26 1
        expected = "KytosEvent('kytos/core.any', {'destination': 'dest', " + \
27
                   "'source': 'src', 'message': 'msg'}, 0)"
28
29 1
        assert repr(self.event) == expected
30
31 1
    @staticmethod
32 1
    def test__lt__():
33
        """test less than operator."""
34 1
        event_a = KytosEvent('a', priority=5)
35 1
        event_b = KytosEvent('b', priority=-10)
36 1
        assert event_b < event_a
37
38 1
        event_a = KytosEvent('a')
39 1
        event_b = KytosEvent('b')
40 1
        assert event_a < event_b
41
42 1
    def test_destination(self):
43
        """Test destination property and set_destination method."""
44 1
        assert self.event.destination is None
45
46 1
        self.event.set_destination('dest')
47 1
        assert self.event.destination == 'dest'
48
49 1
    def test_source(self):
50
        """Test source property and set_source method."""
51 1
        assert self.event.source is None
52
53 1
        self.event.set_source('src')
54 1
        assert self.event.source == 'src'
55
56 1
    def test_message(self):
57
        """Test message property."""
58 1
        assert self.event.message is None
59
60 1
        self.event.content = {"message": "msg"}
61 1
        assert self.event.message == 'msg'
62
63 1
    def test_init_attrs(self):
64
        """Test init attrs."""
65 1
        assert self.event.name == "kytos/core.any"
66 1
        assert self.event.content == {}
67 1
        assert self.event.timestamp <= datetime.now(timezone.utc)
68 1
        assert self.event.id and isinstance(self.event.id, UUID)
69 1
        assert self.event.reinjections == 0
70 1
        assert self.event.priority == 0
71
72 1
    def test_trace_parent(self):
73
        """Test trace_parent."""
74 1
        parent = MagicMock()
75 1
        event = KytosEvent('kytos/core.any', trace_parent=parent)
76 1
        assert event.trace_parent == parent
77
78 1
    def test_as_dict(self):
79
        """Test as_dict."""
80 1
        expected = {'content': {}, 'id': str(self.event.id),
81
                    'name': 'kytos/core.any', 'reinjections': 0,
82
                    'timestamp': self.event.timestamp}
83 1
        assert self.event.as_dict() == expected
84
85 1
    def test_as_json(self):
86
        """Test as_json."""
87 1
        timestamp = datetime.strftime(self.event.timestamp,
88
                                      '%Y-%m-%dT%H:%M:%S')
89 1
        expected = {'content': {}, 'id': str(self.event.id),
90
                    'name': 'kytos/core.any', 'reinjections': 0,
91
                    'timestamp': timestamp}
92
        assert json.loads(self.event.as_json()) == expected
93