def test_sources(self, mock_add_path, mock_robot_run): """Verify that sources get added to PYTHONPATH when task runs""" universal_config = UniversalConfig() project_config = BaseProjectConfig( universal_config, { "sources": { "test1": { "path": "dummy1" }, "test2": { "path": "dummy2" }, } }, ) # get_namespace returns a config. The only part of the config # that the code uses is the repo_root property, so we don't need # a full blown config. project_config.get_namespace = mock.Mock( side_effect=lambda source: mock.Mock(repo_root=project_config. sources[source]["path"])) task = create_task( Robot, { "suites": "test", "sources": ["test1", "test2"] }, project_config=project_config, ) mock_robot_run.return_value = 0 self.assertNotIn("dummy1", sys.path) self.assertNotIn("dummy2", sys.path) task() project_config.get_namespace.assert_has_calls( [mock.call("test1"), mock.call("test2")]) mock_add_path.assert_has_calls( [mock.call("dummy1", end=True), mock.call("dummy2", end=True)]) self.assertNotIn("dummy1", sys.path) self.assertNotIn("dummy2", sys.path)
def test_get_namespace__not_found(self): global_config = BaseGlobalConfig() project_config = BaseProjectConfig(global_config) with self.assertRaises(NamespaceNotFoundError): project_config.get_namespace("test")