def test_generate_package(self, m_zipfile, m_join): """ Ensures that a package file is created with correct name and location """ # First, create a workspace to give to Packager workspace = Workspace("ws/root", ws_name="ws_test", log_level='debug') # Create project project = Project(workspace, 'prj/path') # Instantiate a Packager instance packager = Packager(workspace=workspace, project=project, generate_pd=False, dst_path="dst/path") packager._package_descriptor = True # Prepare mocks context_manager_mock = Mock() m_zipfile.ZipFile.return_value = context_manager_mock enter_mock = Mock() exit_mock = Mock() setattr(context_manager_mock, '__enter__', enter_mock) setattr(context_manager_mock, '__exit__', exit_mock) # execute packager.generate_package("package_name") # make assertions self.assertEqual(m_join.call_args_list[-1], mock.call('dst/path', 'package_name.son'))
def test_package_gds(self): """ Test the validation of the project general description section """ # First, create a workspace to give to Packager workspace = Workspace("ws/root", ws_name="ws_test", log_level="debug") # Create project project = Project(workspace, "prj/path") # Instantiate a Packager instance packager = Packager(workspace=workspace, project=project, generate_pd=False, dst_path="dst/path") packager._package_descriptor = True # Create fake project configuration prj_config = { "catalogues": "[personal]", "description": "Project description", "vendor": "eu.sonata.project", "maintainer": "Name, Company, Contact", "publish_to": "[personal]", "version": "0.0.1", } # Remove keys, one by one... for key in prj_config: value = prj_config.pop(key) self.assertFalse(packager.package_gds(prj_config)) prj_config[key] = value # Make prj_config complete... prj_config["name"] = "sonata - project - sample" self.assertTrue(packager.package_gds(prj_config))
def test_generate_package(self, m_zipfile, m_join, m_validator, m_hash): """ Ensures that a package file is created with correct name and location """ # First, create a workspace to give to Packager workspace = Workspace("ws/root", ws_name="ws_test", log_level="debug") # Create project project = Project(workspace, "prj/path") # Instantiate a Packager instance packager = Packager(workspace=workspace, project=project, generate_pd=False, dst_path="dst/path") packager._package_descriptor = True # Prepare mocks context_manager_mock = Mock() m_zipfile.ZipFile.return_value = context_manager_mock enter_mock = Mock() exit_mock = Mock() setattr(context_manager_mock, "__enter__", enter_mock) setattr(context_manager_mock, "__exit__", exit_mock) m_validator.validate_package.return_value = True m_hash.return_value = "" # execute packager.generate_package("package_name") # make assertions self.assertEqual(m_join.call_args_list[-1], mock.call("dst/path", "package_name.son"))
def test_package_gds(self): """ Test the validation of the project general description section """ # First, create a workspace to give to Packager workspace = Workspace("ws/root", ws_name="ws_test", log_level='debug') # Create project project = Project(workspace, 'prj/path') # Instantiate a Packager instance packager = Packager(workspace=workspace, project=project, generate_pd=False, dst_path="dst/path") packager._package_descriptor = True # Create fake project configuration prj_config = { 'version': '0.5', 'package': { 'version': '0.1', 'name': 'sonata-project-sample', 'vendor': 'com.sonata.project', 'maintainer': 'Name, Company, Contact', 'description': 'Project description', }, 'descriptor_extension': 'yml' } # Remove package keys, one by one... for key in prj_config['package']: value = prj_config['package'].pop(key) self.assertIsNone(packager.package_gds(prj_config)) prj_config['package'][key] = value # Make prj_config complete... prj_config['name'] = 'sonata - project - sample' self.assertTrue(packager.package_gds(prj_config))
def test_package_gds(self): """ Test the validation of the project general description section """ # First, create a workspace to give to Packager workspace = Workspace("ws/root", ws_name="ws_test", log_level='debug') # Create project project = Project(workspace, 'prj/path') # Instantiate a Packager instance packager = Packager(workspace=workspace, project=project, generate_pd=False, dst_path="dst/path") packager._package_descriptor = True # Create fake project configuration prj_config = { 'catalogues': '[personal]', 'description': 'Project description', 'vendor': 'eu.sonata.project', 'maintainer': 'Name, Company, Contact', 'publish_to': '[personal]', 'version': '0.0.1' } # Remove keys, one by one... for key in prj_config: value = prj_config.pop(key) self.assertFalse(packager.package_gds(prj_config)) prj_config[key] = value # Make prj_config complete... prj_config['name'] = 'sonata - project - sample' self.assertTrue(packager.package_gds(prj_config))