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))