diff --git a/slapos/tests/collect.py b/slapos/tests/collect.py index 40ce7d08f3f0c94fd1db3bf3a2a94fde7c06d19e..c1d93d2b5ecea0498477b3a0a6375e41fc476919 100644 --- a/slapos/tests/collect.py +++ b/slapos/tests/collect.py @@ -26,15 +26,15 @@ ############################################################################## import os +import glob import unittest import shutil import tempfile -import slapos.collect -import slapos.cli.collect import slapos.slap import psutil +from time import strftime from slapos.cli.collect import CollectCommand -from slapos.collect import entity, snapshot, db +from slapos.collect import entity, snapshot, db, reporter from slapos.cli.entry import SlapOSApp from argparse import Namespace from ConfigParser import ConfigParser @@ -198,7 +198,65 @@ class TestCollectDatabase(unittest.TestCase): finally: database.close() +class TestCollectReport(unittest.TestCase): + def setUp(self): + self.instance_root = tempfile.mkdtemp() + + def tearDown(self): + if os.path.exists(self.instance_root): + shutil.rmtree(self.instance_root) + + def test_raw_csv_report(self): + + database = db.Database(self.instance_root) + database.connect() + database.insertSystemSnapshot("0.1", '10.0', '100.0', '100.0', + '10.0', '1', '2', '12.0', '1', '1', '1983-01-10', 'TIME') + database.insertDiskPartitionSnapshot( + '/dev/sdx1', '10', '20', '/mnt', '1983-01-10', 'TIME') + database.insertComputerSnapshot( + '1', '0', '0', '100', '0', '/dev/sdx1', '1983-01-10', 'TIME') + database.commit() + database.close() + reporter.RawCSVDumper(database).dump(self.instance_root) + self.assertTrue(os.path.exists("%s/1983-01-10" % self.instance_root)) + + csv_path_list = ['%s/1983-01-10/dump_disk.csv' % self.instance_root, + '%s/1983-01-10/dump_computer.csv' % self.instance_root, + '%s/1983-01-10/dump_user.csv' % self.instance_root, + '%s/1983-01-10/dump_system.csv' % self.instance_root] + + self.assertEquals(glob.glob("%s/1983-01-10/*.csv" % self.instance_root), + csv_path_list) + + def test_system_csv_report(self): + database = db.Database(self.instance_root) + database.connect() + database.insertSystemSnapshot("0.1", '10.0', '100.0', '100.0', + '10.0', '1', '2', '12.0', '1', '1', strftime("%Y-%m-%d"), 'TIME') + database.insertDiskPartitionSnapshot( + '/dev/sdx1', '10', '20', '/mnt', strftime("%Y-%m-%d"), 'TIME') + database.insertComputerSnapshot( + '1', '0', '0', '100', '0', '/dev/sdx1', strftime("%Y-%m-%d"), 'TIME') + database.commit() + database.close() + + reporter.SystemCSVReporterDumper(database).dump(self.instance_root) + csv_path_list = ['%s/system_memory_used.csv' % self.instance_root, + '%s/system_cpu_percent.csv' % self.instance_root, + '%s/system_net_out_bytes.csv' % self.instance_root, + '%s/system_net_in_bytes.csv' % self.instance_root, + '%s/system_disk_memory_free_sdx1.csv' % self.instance_root, + '%s/system_net_out_errors.csv' % self.instance_root, + '%s/system_disk_memory_used_sdx1.csv' % self.instance_root, + '%s/system_net_out_dropped.csv' % self.instance_root, + '%s/system_memory_free.csv' % self.instance_root, + '%s/system_net_in_errors.csv' % self.instance_root, + '%s/system_net_in_dropped.csv' % self.instance_root, + '%s/system_loadavg.csv' % self.instance_root] + + self.assertEquals(glob.glob("%s/*.csv" % self.instance_root), csv_path_list) class TestCollectSnapshot(unittest.TestCase):