def test_revert_03(self): write_probe('''#!/usr/bin/env bash echo hello world from probe! | tee bar mv eggs eggs2 ls -l foo/spam rm foo/spam''') pipeline = self.pipeline_loader.load_pipeline('run-probe-1') namespace = pmatic.Namespace() event_log = pmatic.EventLog(self.test_dir) event_log.read_log() self.assertFalse(event_log.event_data) pprint.pprint(vars(event_log)) scan1 = pmatic.scan_directory(self.test_dir) pprint.pprint(scan1) pipeline.run(namespace) scan2 = pmatic.scan_directory(self.test_dir) self.assertNotEqual(scan1, scan2) event_log = pmatic.EventLog(self.test_dir) event_log.read_log() self.assertTrue(event_log.event_data) pprint.pprint(vars(event_log)) os.chdir('..') event_log.revert_one() self.assertFalse(event_log.event_data) scan3 = pmatic.scan_directory(self.test_dir) self.assertEqual(scan1, scan3) pprint.pprint(scan3)
def test_basic(self): event_log = self.event_log mock_pipeline = pmatic.Namespace(pipeline_name='test-pipeline-1') self.assertEqual(event_log.get_status(), 'never_run') event_log.record_pipeline_started(mock_pipeline) self.assertEqual(event_log.get_status(), 'started') event_log.record_pipeline_finished(mock_pipeline) self.assertEqual(event_log.get_status(), 'finished')
def test_basic(self): write_probe('''#!/usr/bin/env bash echo hello world from probe!!! echo example error >&2''') pipeline = self.pipeline_loader.load_pipeline('run-probe-1') namespace = pmatic.Namespace() pipeline.run(namespace) scan = pmatic.scan_directory(self.test_dir) # For reproducibility, strip inode out of scan. result = { k: (f, m & 0777, int(s), l) for k, (f, m, s, i, l) in scan.iteritems() }
def test_revert_04(self): write_file('foo-input', 'hello\nworld') namespace = pmatic.Namespace() self.pipeline_loader.load_pipeline('bar-1').run(namespace) scan1 = pmatic.scan_directory(self.test_dir) pprint.pprint(scan1) self.pipeline_loader.load_pipeline('foo-1').run(namespace) os.chdir('..') scan2 = pmatic.scan_directory(self.test_dir) pprint.pprint(scan2) self.assertNotEqual(scan1, scan2) pmaticrevert.main((self.test_dir, )) scan3 = pmatic.scan_directory(self.test_dir) self.assertEqual(scan1, scan3) pprint.pprint(scan3)
def test_revert_01(self): write_probe('''#!/usr/bin/env bash echo hello world from probe! | tee bar mv eggs eggs2 ls -l foo/spam rm foo/spam''') pipeline = self.pipeline_loader.load_pipeline('run-probe-1') namespace = pmatic.Namespace() scan1 = pmatic.scan_directory(self.test_dir) pipeline.run(namespace) scan2 = pmatic.scan_directory(self.test_dir) self.assertNotEqual(scan1, scan2) pprint.pprint(scan1) pprint.pprint(scan2) os.chdir('..') pmatic.restore_snapshot(scan1, self.test_dir) scan3 = pmatic.scan_directory(self.test_dir) pprint.pprint(scan3) self.maxDiff = None self.assertEqual(scan1, scan3)
def setUp(self): m1, m2 = make_maps() self.n0 = pmatic.Namespace() self.n1 = pmatic.Namespace(m1, b=5, c=6) self.n2 = pmatic.Namespace(m1, m2, d=7)