예제 #1
0
파일: helper.py 프로젝트: FrostyX/tracer
	def print_helper(self, app, args):
		if app.instances:
			manager = System.package_manager()
			package = manager.provided_by(app)
			if package:
				package.load_info(System.package_manager())

			tr = Tracer(System.package_manager(), Rules, Applications)
			tr.now = self.args.now
			if self.packages:
				tr.specified_packages = self.packages

			try: affected_by = tr.trace_application(app)
			except AccessDenied: affected_by = _("You don't have enough permissions")
			affects = self._affects(app, affected_by)

			view = HelperView()
			view.assign("args", args)
			view.assign("processes", app.instances)
			view.assign("application", app)
			view.assign("package", package)
			view.assign("affected_by", affected_by)
			view.assign("affects", affects)
			view.render()
		else:
			print(_("Application called {0} is not running").format(app.name))
예제 #2
0
	def print_helper(self, app_name, args):
		processes = Applications.find(app_name).instances
		if processes:
			manager = System.package_manager()
			package = manager.provided_by(app_name)
			if package:
				package.load_info(System.package_manager())

			tr = Tracer(System.package_manager(), Rules, Applications)
			tr.now = self.args.now
			if self.packages:
				tr.specified_packages = self.packages

			try: affected_by = tr.trace_application(app_name)
			except AccessDenied: affected_by = _("You don't have enough permissions")

			app = Applications.find(app_name)
			affects = self._affects(app, affected_by)

			view = HelperView()
			view.assign("args", args)
			view.assign("processes", processes)
			view.assign("application", app)
			view.assign("package", package)
			view.assign("affected_by", affected_by)
			view.assign("affects", affects)
			view.render()
		else:
			print(_("Application called {0} is not running").format(app_name))
예제 #3
0
class TestRules(unittest.TestCase):
    def setUp(self):
        self.tracer = Tracer(PackageManagerMock(),
                             Rules,
                             Applications,
                             memory=dump_memory_mock)
        self.tracer.timestamp = 5555  # Sure, it should be a UNIX timestamp value
        Application.processes_factory = ProcessesMock

    def test_trace_affected(self):
        affected = self.tracer.trace_affected()
        self.assertSetEqual(
            set(affected),
            set([Applications.find("baz"),
                 Applications.find("qux")]))
        self.assertIsInstance(affected, ApplicationsCollection)

    def test_trace_application(self):
        affected = self.tracer.trace_application(Applications.find("baz"),
                                                 AffectedProcessMock)
        self.assertIsInstance(affected, AffectedProcessesCollection)
        self.assertEqual(len(affected), 1)

        process = affected[0]
        self.assertIsInstance(process, AffectedProcess)
        self.assertEqual(process.pid, 4)  # pid of "baz" in our mock
예제 #4
0
class TestRules(unittest.TestCase):
	def setUp(self):
		self.tracer = Tracer(PackageManagerMock(), Rules, Applications, memory=dump_memory_mock)
		self.tracer.timestamp = 5555  # Sure, it should be a UNIX timestamp value
		Application.processes_factory = ProcessesMock

	def test_trace_affected(self):
		affected = self.tracer.trace_affected()
		self.assertSetEqual(set(affected), set([Applications.find("baz"), Applications.find("qux")]))
		self.assertIsInstance(affected, ApplicationsCollection)

	def test_trace_application(self):
		affected = self.tracer.trace_application("baz", AffectedProcessMock)
		self.assertIsInstance(affected, AffectedProcessesCollection)
		self.assertEqual(len(affected), 1)

		process = affected[0]
		self.assertIsInstance(process, AffectedProcess)
		self.assertEqual(process.pid, 4)  # pid of "baz" in our mock