Passed
Pull Request — master (#209)
by Vinicius
14:29 queued 06:00
created

TestElasticAPM.setUp()   A

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
"""Test kytos.core.cpm module."""
2
# pylint: disable=no-self-use
3
4
from unittest import TestCase
5
from unittest.mock import MagicMock, patch
6
7
from kytos.core.apm import ElasticAPM, begin_span, init_apm
8
from kytos.core.exceptions import KytosAPMInitException
9
10
11
class TestElasticAPM(TestCase):
12
    """TestElasticAPM."""
13
14
    def setUp(self):
15
        """setUp."""
16
        ElasticAPM._client = None
17
        ElasticAPM._flask_apm = None
18
19
    @patch("kytos.core.apm.execution_context")
20
    def test_begin_span_decorator(self, context):
21
        """Test begin span_decorator."""
22
23
        def inner():
24
            pass
25
26
        begin_span(inner)()
27
        assert context.get_transaction.call_count == 1
28
29
    @patch("kytos.core.apm.ElasticAPM.init_client")
30
    def test_init_apm(self, mock_init):
31
        """Test init_apm."""
32
        init_apm("es")
33
        assert mock_init.call_count == 1
34
35
        with self.assertRaises(KytosAPMInitException):
36
            init_apm("unknown_apm")
37
        assert mock_init.call_count == 1
38
39
    @patch("kytos.core.apm.ElasticAPM.init_client")
40
    def test_get_client(self, mock_init):
41
        """Test get_client."""
42
        assert not ElasticAPM._client
43
        assert not ElasticAPM._flask_apm
44
        ElasticAPM.get_client()
45
        assert mock_init.call_count == 1
46
        ElasticAPM._client = MagicMock()
47
        ElasticAPM.get_client()
48
        assert mock_init.call_count == 1
49
50
    @patch("kytos.core.apm.ElasticAPM._flask_apm")
51
    def test_init_flask_app(self, mock_flask_apm):
52
        """Test init_flask_app."""
53
        assert not ElasticAPM._client
54
        ElasticAPM.init_flask_app(MagicMock())
55
        assert mock_flask_apm.init_app.call_count == 1
56
57
    @patch("kytos.core.apm.FlaskAPM")
58
    @patch("kytos.core.apm.Client")
59
    def test_init_client(self, mock_client, mock_flask_apm):
60
        """Test init_client."""
61
        assert not ElasticAPM._client
62
        assert not ElasticAPM._flask_apm
63
        ElasticAPM.init_client()
64
        assert mock_client.call_count == 1
65
        assert mock_flask_apm.call_count == 1
66