def _store_package_files(self): """ @brief Store all files in zip archive and add them to the manifest file """ # make sure metadata is up to date self.metadata = Metadata(self.metadata.driver_make, self.metadata.driver_model, self.metadata.driver_name, REPODIR + '/marine-integrations') self.generator = DriverGenerator(self.metadata) egg_generator = EggGenerator(self.metadata) egg_file = egg_generator.save() # Add egg self._add_file(egg_file, 'egg', 'python driver egg package') # Add the package metadata file self._add_file(self.metadata.metadata_path(), description = 'package metadata') # Add the qualification test log self._add_file(self.log_path(), description = 'qualification tests results') # Store parameter/command string description file str_path = "%s/%s" % (self.generator.resource_dir(), self.string_file()) if os.path.exists(str_path): self._add_file(str_path, 'resource', 'driver string file') # Store additional resource files self._store_resource_files() # Finally save the manifest file. This must be last of course self._add_file(self.manifest().manifest_path(), description = 'package manifest file')
def _store_package_files(self): """ @brief Store all files in zip archive and add them to the manifest file """ egg_generator = EggGenerator(self.metadata) egg_file = egg_generator.save() # Add egg self._add_file(egg_file, 'egg', 'python driver egg package') # Add the package metadata file self._add_file(self.metadata.metadata_path(), description = 'package metadata') # Add the qualification test log self._add_file(self.log_path(), description = 'qualification tests results') # Store parameter/command string description file self._add_file("%s/%s" % (self.generator.resource_dir(), self.string_file()), 'resource', 'driver string file') # Store additional resource files self._store_resource_files() # Finally save the manifest file. This must be last of course self._add_file(self.manifest().manifest_path(), description = 'package manifest file')
def setUp(self): IDKPackageNose.setUp(self) self._metadata = Metadata('seabird', 'sbe37smb', 'ooicore') self._generator = EggGenerator(self._metadata) # Ensure the base build dir doesnt exists build_dir = path.join(self._generator._tmp_dir(), self._generator._build_name()) if exists(build_dir): rmtree(build_dir) self._generator._generate_build_dir() self._repo_dir = Config().get('working_repo') self._tmp_dir = Config().get('tmp_dir')
def _store_package_files(self): """ @brief Store all files in zip archive and add them to the manifest file """ egg_generator = EggGenerator(self.metadata) egg_file = egg_generator.save() # Add egg self._add_file(egg_file, "egg", "python driver egg package") # Add the package metadata file self._add_file(self.metadata.metadata_path(), description="package metadata") # Add the qualification test log self._add_file(self.log_path(), description="qualification tests results") # Store additional resource files self._store_resource_files() # Finally save the manifest file. This must be last of course self._add_file(self.manifest().manifest_path(), description="package manifest file")
def setUp(self): IDKPackageNose.setUp(self) self._repo_dir = Config().get("working_repo") self._tmp_dir = Config().get("tmp_dir") self._metadata = Metadata("seabird", "sbe37smb", "ooicore", ".") self._generator = EggGenerator(self._metadata, self._repo_dir) # Ensure the base build dir doesnt exists build_dir = path.join(self._generator._tmp_dir(), self._generator._build_name()) if exists(build_dir): rmtree(build_dir) self._generator._generate_build_dir()
def setUp(self): IDKPackageNose.setUp(self) self._repo_dir = Config().get('working_repo') self._tmp_dir = Config().get('tmp_dir') self._metadata = Metadata('seabird', 'sbe37smb', 'ooicore', '.') self._generator = EggGenerator(self._metadata, self._repo_dir) # Ensure the base build dir doesnt exists build_dir = path.join(self._generator._tmp_dir(), self._generator._build_name()) if exists(build_dir): rmtree(build_dir) self._generator._generate_build_dir()
def _store_package_files(self): """ @brief Store all files in zip archive and add them to the manifest file """ # make sure metadata is up to date self.metadata = Metadata(self.metadata.driver_make, self.metadata.driver_model, self.metadata.driver_name, REPODIR + '/marine-integrations') self.generator = DriverGenerator(self.metadata) egg_generator = EggGenerator(self.metadata) egg_file = egg_generator.save() # Add egg self._add_file(egg_file, 'egg', 'python driver egg package') # Add the package metadata file self._add_file(self.metadata.metadata_path(), description='package metadata') # Add the qualification test log self._add_file(self.log_path(), description='qualification tests results') # Store parameter/command string description file str_path = "%s/%s" % (self.generator.resource_dir(), self.string_file()) if os.path.exists(str_path): self._add_file(str_path, 'resource', 'driver string file') # Store additional resource files self._store_resource_files() # Finally save the manifest file. This must be last of course self._add_file(self.manifest().manifest_path(), description='package manifest file')
class TestDriverEggGenerator(IDKPackageNose): """ Test the egg generation process """ def setUp(self): IDKPackageNose.setUp(self) self._metadata = Metadata('seabird', 'sbe37smb', 'ooicore') self._generator = EggGenerator(self._metadata) # Ensure the base build dir doesnt exists build_dir = path.join(self._generator._tmp_dir(), self._generator._build_name()) if exists(build_dir): rmtree(build_dir) self._generator._generate_build_dir() self._repo_dir = Config().get('working_repo') self._tmp_dir = Config().get('tmp_dir') def tearDown(self): IDKPackageNose.tearDown(self) if exists(self._generator._build_dir()): rmtree(self._generator._build_dir()) def test_path(self): """ Test the object paths """ known_name = "%s_%s_%s_%s" % ( self._metadata.driver_make, self._metadata.driver_model, self._metadata.driver_name, self._metadata.version, ) self.assertEqual(self._generator._tmp_dir(), self._tmp_dir) self.assertEqual(self._generator._repo_dir(), self._repo_dir) self.assertEqual(self._generator._setup_path(), path.join(self._tmp_dir,self._generator._build_name(),'setup.py')) self.assertEqual(self._generator._build_name(), known_name) self.assertEqual(self._generator._build_dir(), path.join(self._tmp_dir,self._generator._build_name())) def test_build_dir_create(self): """ test to ensure that the build dir is created properly """ build_dir_orig = self._generator._generate_build_dir() self.assertFalse(exists(build_dir_orig)) makedirs(build_dir_orig) self.assertTrue(exists(build_dir_orig)) build_dir = self._generator._generate_build_dir() rmtree(build_dir_orig, True) self.assertFalse(exists(build_dir_orig)) self.assertEqual(build_dir, build_dir_orig) def test_version_verify(self): with self.assertRaises(ValidationFailure): self._generator._verify_version(0) with self.assertRaises(ValidationFailure): self._generator._verify_version("5.1") with self.assertRaises(ValidationFailure): self._generator._verify_version(-1) with self.assertRaises(ValidationFailure): self._generator._verify_version("-1.1.1") self._generator._verify_version("1.1.1") def test_egg_build(self): ''' Build an egg with some python source files. Verify the egg was created properly and contains all expected files. @return: ''' files = [ 'mi/__init__.py', 'mi/idk/__init__.py', 'mi/idk/config.py', 'res/config/mi-logging.yml'] egg_files = [ 'EGG-INFO/dependency_links.txt', 'EGG-INFO/entry_points.txt', 'EGG-INFO/PKG-INFO', 'EGG-INFO/requires.txt', 'EGG-INFO/SOURCES.txt', 'EGG-INFO/top_level.txt', 'EGG-INFO/zip-safe', 'mi/main.py', 'mi/mi-logging.yml', ] egg_file = self._generator._build_egg(files) self.assertTrue(exists(egg_file)) # Verify that the files in the egg are what we expect. zipped = ZipFile(egg_file) # this files is actually moved to mi/mi-logging.yml and appears # in the egg_files list. files.remove('res/config/mi-logging.yml') log.debug("EGG FILES: %s", sorted(zipped.namelist())) log.debug("EXP FILES: %s", sorted(files + egg_files)) self.assertListEqual(sorted(zipped.namelist()), sorted(files + egg_files)) def test_sbe37_egg(self): egg_file = self._generator.save() self.assertTrue(exists(egg_file))
class TestDriverEggGenerator(IDKPackageNose): """ Test the egg generation process """ def setUp(self): IDKPackageNose.setUp(self) self._metadata = Metadata('seabird', 'sbe37smb', 'example') self._generator = EggGenerator(self._metadata) # Ensure the base build dir doesnt exists build_dir = path.join(self._generator._tmp_dir(), self._generator._build_name()) if exists(build_dir): rmtree(build_dir) self._generator._generate_build_dir() self._repo_dir = Config().get('working_repo') self._tmp_dir = Config().get('tmp_dir') def tearDown(self): IDKPackageNose.tearDown(self) if exists(self._generator._build_dir()): rmtree(self._generator._build_dir()) def test_path(self): """ Test the object paths """ known_name = "%s_%s_%s_%s" % ( self._metadata.driver_make, self._metadata.driver_model, self._metadata.driver_name, self._metadata.version, ) self.assertEqual(self._generator._tmp_dir(), self._tmp_dir) self.assertEqual(self._generator._repo_dir(), self._repo_dir) self.assertEqual(self._generator._setup_path(), path.join(self._tmp_dir,self._generator._build_name(),'setup.py')) self.assertEqual(self._generator._build_name(), known_name) self.assertEqual(self._generator._build_dir(), path.join(self._tmp_dir,self._generator._build_name())) def test_build_dir_create(self): """ test to ensure that the build dir is created properly """ build_dir_orig = self._generator._generate_build_dir() self.assertFalse(exists(build_dir_orig)) makedirs(build_dir_orig) self.assertTrue(exists(build_dir_orig)) build_dir = self._generator._generate_build_dir() rmtree(build_dir_orig) self.assertFalse(exists(build_dir_orig)) self.assertEqual(build_dir, "%s.001" % build_dir_orig) def test_version_verify(self): with self.assertRaises(ValidationFailure): self._generator._verify_version(0) with self.assertRaises(ValidationFailure): self._generator._verify_version("5.1") with self.assertRaises(ValidationFailure): self._generator._verify_version(-1) with self.assertRaises(ValidationFailure): self._generator._verify_version("-1.1.1") self._generator._verify_version("1.1.1") def test_egg_build(self): files = [ 'mi/instrument/seabird/sbe37smb/example/driver.py', 'mi/instrument/seabird/sbe37smb/example/test/test_driver.py', 'res/config/mi-logging.yml'] egg_file = self._generator._build_egg(files) self.assertTrue(exists(egg_file)) def test_sbe37_egg(self): egg_file = self._generator.save() self.assertTrue(exists(egg_file))
def get_egg_generator(self): return EggGenerator(self.metadata)