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')
예제 #3
0
    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')
예제 #4
0
    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")
예제 #5
0
    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()
예제 #6
0
    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()
예제 #7
0
    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')
예제 #8
0
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))
예제 #10
0
 def get_egg_generator(self):
     return EggGenerator(self.metadata)