rubbos installation guide
[bottlenecks.git] / vstf / vstf / agent / unittest / perf / test_vnstat.py
1 """
2 Created on 2015-9-23
3
4 @author: y00228926
5 """
6 import unittest
7 import time
8
9 from vstf.agent.perf.utils import get_pid_by_name
10 from vstf.agent.unittest.perf import model
11 from vstf.agent.perf import vnstat
12
13
14 class TestVnstat(model.LocalModel):
15     def setUp(self):
16         super(TestVnstat, self).setUp()
17         self.vnstat = vnstat.VnStat()
18         self.namespace = self.ns_list[0]
19         self.device = self.device_list[0]
20         self.ip_setting = self.ip_setting_list[0]
21         netdev = {
22             "namespace": self.namespace,
23             "iface": self.device,
24             'ip_setting': self.ip_setting
25         }
26         self.mgr.config_dev(netdev)
27
28     def tearDown(self):
29         super(TestVnstat, self).tearDown()
30
31     def test_run_vnstat(self):
32         logging.basicConfig(level=logging.DEBUG)
33         pid = self.vnstat.run_vnstat(self.device, self.namespace)
34         time.sleep(12)
35         raw = self.vnstat.kill_vnstat(pid, self.namespace)
36         print raw['raw_data']
37         data = self.vnstat.process(raw['raw_data'])
38         self.assertTrue(type(data) is dict)
39         for key in ('rxmB/s', 'txmB', 'rxpck', 'txpck', \
40                     'rxpck_min/s', 'txmB_max/s', 'txpck_max/s', \
41                     'txmB/s', 'rxmB', 'rxmB_max/s', 'rxpck/s', 'rxmB_min/s', \
42                     'time', 'rxpck_max/s', 'txpck_min/s', 'txpck/s', 'txmB_min/s'):
43             self.assertTrue(key in data)
44
45     def test_clean(self):
46         self.vnstat.run_vnstat(self.device, self.namespace)
47         self.vnstat.clean()
48         self.assertTrue(get_pid_by_name('vnstat') == [])
49
50
51 if __name__ == "__main__":
52     import logging
53
54     LOG = logging.getLogger(__name__)
55     logging.basicConfig(level=logging.DEBUG)
56     # import sys;sys.argv = ['', 'Test.testName']
57     unittest.main()