Completed
Push — master ( a29c3e...00153b )
by Dave
01:10
created

TestMiner.test_miner_monitored_nothing_none()   A

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
'''test mining domain'''
2
import unittest
3
import datetime
4
from domain.mining import Miner, MinerStatus, MinerInfo, MinerStatistics, MinerApiCall
5
6
class TestMiner(unittest.TestCase):
7
    def test_miner_is_not_disabled(self):
8
        miner = Miner("test", '', '', '', '', '', '', '', '')
9
        self.assertFalse(miner.is_disabled())
10
11
    def test_miner_is_disabled(self):
12
        miner = Miner("#test", '', '', '', '', '', '', '', '')
13
        self.assertTrue(miner.is_disabled())
14
15
    def test_miner_key_is_id(self):
16
        miner = Miner("test", minerid='unittest')
17
        self.assertTrue(miner.key() == 'unittest')
18
19
    def test_miner_key_not_unknown(self):
20
        miner = Miner('test', minerid='unknown', ipaddress='unittest', port='1234')
21
        self.assertTrue(miner.key() == 'unittest:1234')
22
23
    def test_miner_key_is_networkid(self):
24
        miner = Miner("test", networkid={'unittest1', 'unittest2'})
25
        self.assertTrue(miner.key() == str({'unittest1', 'unittest2'}))
26
27
    def test_key_notempty_net(self):
28
        miner = Miner("test", networkid={})
29
        self.assertFalse(miner.key() == str({}))
30
31
    def test_miner_key_is_ip(self):
32
        miner = Miner("test", ipaddress='unittest', port='1234')
33
        self.assertTrue(miner.key() == 'unittest:1234')
34
35
    def test_miner_key_is_name(self):
36
        miner = Miner("test")
37
        self.assertTrue(miner.key() == 'test')
38
39
    def test_miner_formattime_now(self):
40
        miner = Miner('test')
41
        miner.lastmonitor = datetime.datetime.utcnow()
42
        self.assertTrue(miner.formattime(miner.lastmonitor))
43
44
    def test_miner_formattime_string(self):
45
        miner = Miner('test')
46
        miner.lastmonitor = '2018-04-11T01:28:45+00:00'
47
        self.assertTrue(miner.formattime(miner.lastmonitor))
48
49
    def test_miner_uses_custom(self):
50
        miner = Miner('test')
51
        miner.ftpport = '99'
52
        miner.set_ftp_port('22')
53
        self.assertTrue(miner.ftpport == '99')
54
55
    def test_miner_uses_default(self):
56
        miner = Miner('test')
57
        miner.ftpport = ''
58
        miner.set_ftp_port('22')
59
        self.assertTrue(miner.ftpport == '22')
60
61
    def test_miner_status_set_last_update(self):
62
        miner = Miner('test')
63
        self.assertTrue(not miner.laststatuschanged)
64
        miner.status = MinerStatus.Offline
65
        self.assertTrue(miner.laststatuschanged)
66
67
    def test_miner_status_change_keeps_original(self):
68
        miner = Miner('test')
69
        miner.status = MinerStatus.Offline
70
        self.assertTrue(miner.laststatuschanged)
71
        originalstatuschangetime = miner.laststatuschanged
72
        miner.status = MinerStatus.Offline
73
        self.assertTrue(miner.laststatuschanged == originalstatuschangetime)
74
75
    def test_miner_status_no_you_cant(self):
76
        miner = Miner('test')
77
        def set_status_test():
78
            miner.status = 'you can be anyting'
79
        self.assertRaises(ValueError, set_status_test)
80
81
    def test_miner_reset_offline_count(self):
82
        miner = Miner('test')
83
        self.assertTrue(miner.offlinecount == 0)
84
        self.assertTrue(miner.is_send_offline_alert())
85
        miner.offline_now()
86
        miner.offline_now()
87
        miner.offline_now()
88
        miner.offline_now()
89
        self.assertFalse(miner.is_send_offline_alert())
90
        miner.online_now()
91
        self.assertTrue(miner.offlinecount == 0)
92
        self.assertTrue(miner.is_send_offline_alert())
93
94
    def test_miner_setminerinfo(self):
95
        miner = Miner('test')
96
        minerinfo = MinerInfo('testminertype', miner.minerid)
97
        miner.setminerinfo(minerinfo)
98
        self.assertTrue(miner.miner_type == minerinfo.miner_type)
99
100
    def test_miner_shouldmonitor(self):
101
        miner = Miner('test')
102
        miner.lastmonitor = ""
103
        self.assertTrue(miner.should_monitor())
104
105
    def test_miner_elapsed_format(self):
106
        miner = Miner('test')
107
        miner.minerstats = MinerStatistics(miner)
108
        self.assertTrue(miner.minerstats.format_elapsed() == "0:0:0:0")
109
110
    def test_miner_monitored_nothing_none(self):
111
        miner = Miner('test')
112
        miner.monitored(None, None, None, None)
113
        self.assertTrue(miner.lastmonitor is None)
114
115
    def test_miner_monitored_not_nothing_ismonitored(self):
116
        miner = Miner('test')
117
        stats = MinerStatistics(miner)
118
        miner.monitored(stats, pool=None, info=None, sec=None)
119
        self.assertFalse(miner.lastmonitor is None)
120
121
    def test_miner_monitored_timer(self):
122
        miner = Miner('test')
123
        stats = MinerStatistics(miner)
124
        apicall = MinerApiCall(miner)
125
        apicall.start()
126
        apicall.stop()
127
        miner.monitored(stats, pool=None, info=None, sec=apicall.elapsed())
128
        self.assertFalse(miner.lastmonitor is None)
129
130
if __name__ == '__main__':
131
    unittest.main()
132