Example #1
0
    def test_apt_consume_file(self):
        from infi.app_repo.indexers.apt import AptIndexer
        import gzip
        with self._setup_context() as config:
            indexer = AptIndexer(config, 'main-stable')
            indexer.initialise()
            filepath = self.write_new_package_in_incoming_directory(config, extension='deb')
            self.assertTrue(indexer.are_you_interested_in_file(filepath, 'linux-ubuntu-xenial', 'x86'))
            self.assertFalse(indexer.are_you_interested_in_file('foo.rpm', 'linux-ubuntu-xenial', 'x86'))
            indexer.consume_file(filepath, 'linux-ubuntu-xenial', 'i386')

            packages_file = path.join(indexer.base_directory, 'linux-ubuntu', 'dists', 'xenial', 'main', 'binary-i386', 'Packages')
            with fopen(packages_file) as fd:
                packages_contents = fd.read()
                self.assertNotEquals(packages_contents, '')
                self.assertIn("Filename: dists/xenial/main/binary-i386/some-package.deb", packages_contents)
            with gzip.open(packages_file + '.gz', 'rb') as fd:
                self.assertEquals(packages_contents, fd.read())

            release_dirpath = path.join(indexer.base_directory, 'linux-ubuntu', 'dists', 'xenial')
            self.assertTrue(path.exists(path.join(release_dirpath, 'main', 'binary-i386', 'some-package.deb')))

            release_filepath = path.join(release_dirpath, 'Release')
            # with fopen(release_filepath) as fd:
            #     self.assertEquals(fd.read(), 'Codename: xenial\nArchitectures: amd64 i386\nComponents: main\nok')
            self.assertTrue(path.exists(release_filepath))
    def test_wget_consume_file(self):
        from infi.app_repo.indexers.wget import PrettyIndexer
        with self._setup_context() as config:
            indexer = PrettyIndexer(config, 'main-stable')
            indexer.initialise()
            filepath = self.write_new_package_in_incoming_directory(
                config,
                package_basename='my-app-0.1-linux-ubuntu-xenial-x64',
                extension='deb')
            self.assertTrue(
                indexer.are_you_interested_in_file(filepath,
                                                   'linux-ubuntu-xenial',
                                                   'x64'))
            indexer.consume_file(filepath, 'linux-ubuntu-xenial', 'x64')

            self.assertTrue(
                path.exists(
                    path.join(indexer.base_directory, 'packages', 'my-app',
                              'releases', '0.1', 'distributions',
                              'linux-ubuntu-xenial', 'architectures', 'x64',
                              'extensions', 'deb',
                              'my-app-0.1-linux-ubuntu-xenial-x64.deb')))
            packages = read_json_file(
                path.join(indexer.base_directory, 'packages.json'))
            self.assertIsInstance(packages, list)
            self.assertGreater(len(packages), 0)
            releases = read_json_file(
                path.join(indexer.base_directory, 'packages', 'my-app',
                          'releases.json'))
            self.assertIsInstance(packages, list)
            self.assertGreater(len(packages), 0)
    def test_wget_consumes_ova(self):
        from infi.app_repo.indexers.wget import PrettyIndexer
        with self._setup_context() as config:
            indexer = PrettyIndexer(config, 'main-stable')
            indexer.initialise()
            filepath = self.write_new_package_in_incoming_directory(
                config,
                package_basename=
                'application-repository-0.2.31-linux-ubuntu-lucid-x86_OVF10',
                extension='ova')
            self.assertTrue(
                indexer.are_you_interested_in_file(filepath,
                                                   'linux-ubuntu-lucid',
                                                   'x86_OVF10'))
            indexer.consume_file(filepath, 'linux-ubuntu-lucid', 'x86_OVF10')

            self.assertTrue(
                path.exists(
                    path.join(
                        indexer.base_directory, 'packages',
                        'application-repository', 'releases', '0.2.31',
                        'distributions', 'vmware-esx', 'architectures',
                        'x86_OVF10', 'extensions', 'ova',
                        'application-repository-0.2.31-linux-ubuntu-lucid-x86_OVF10.ova'
                    )))
            packages = read_json_file(
                path.join(indexer.base_directory, 'packages.json'))
            self.assertIsInstance(packages, list)
            self.assertGreater(len(packages), 0)
            releases = read_json_file(
                path.join(indexer.base_directory, 'packages',
                          'application-repository', 'releases.json'))
            self.assertIsInstance(packages, list)
            self.assertGreater(len(packages), 0)
Example #4
0
def restart_after():
    require_restart = [service for service in SERVICES if
                       path.exists(path.join(INIT, '%s.conf' % service))]
    for service in require_restart:
        log_execute_assert_success(['stop', service], allow_to_fail=True)
    yield
    for service in require_restart:
        log_execute_assert_success(['start', service])
    def test_upload(self):
        with patch.object(ftpserver.AppRepoFtpHandler, "on_file_received") as on_file_received:
            on_file_received.side_effect = self.mark_success
            fd = StringIO("hello world")
            with self.ftp_server_context(self.config), self.ftp_client_context(self.config, True) as client:
                client.storbinary("STOR testfile", fd)

        self.assertTrue(self.test_succeded)
        self.assertTrue(path.exists(path.join(self.config.incoming_directory, 'testfile')))
Example #6
0
    def test_upload(self):
        with patch.object(ftpserver.AppRepoFtpHandler, "on_file_received") as on_file_received:
            on_file_received.side_effect = self.mark_success
            fd = StringIO("hello world")
            with self.ftp_server_context(self.config), self.ftp_client_context(self.config, True) as client:
                client.storbinary("STOR testfile", fd)

        self.assertTrue(self.test_succeded)
        self.assertTrue(path.exists(path.join(self.config.incoming_directory, 'testfile')))
Example #7
0
def restart_after():
    require_restart = [
        service for service in SERVICES
        if path.exists(path.join(INIT, '%s.conf' % service))
    ]
    for service in require_restart:
        log_execute_assert_success(['stop', service], allow_to_fail=True)
    yield
    for service in require_restart:
        log_execute_assert_success(['start', service])
    def test_apt_consume_file(self):
        from infi.app_repo.indexers.apt import AptIndexer
        import gzip
        with self._setup_context() as config:
            indexer = AptIndexer(config, 'main-stable')
            indexer.initialise()
            filepath = self.write_new_package_in_incoming_directory(
                config, extension='deb')
            self.assertTrue(
                indexer.are_you_interested_in_file(filepath,
                                                   'linux-ubuntu-xenial',
                                                   'x86'))
            self.assertFalse(
                indexer.are_you_interested_in_file('foo.rpm',
                                                   'linux-ubuntu-xenial',
                                                   'x86'))
            indexer.consume_file(filepath, 'linux-ubuntu-xenial', 'i386')

            packages_file = path.join(indexer.base_directory, 'linux-ubuntu',
                                      'dists', 'xenial', 'main', 'binary-i386',
                                      'Packages')
            with fopen(packages_file) as fd:
                packages_contents = fd.read()
                self.assertNotEqual(packages_contents, '')
                self.assertIn(
                    "Filename: dists/xenial/main/binary-i386/some-package.deb",
                    packages_contents)
            with gzip.open(packages_file + '.gz', 'rb') as fd:
                self.assertEqual(packages_contents, fd.read().decode())

            release_dirpath = path.join(indexer.base_directory, 'linux-ubuntu',
                                        'dists', 'xenial')
            self.assertTrue(
                path.exists(
                    path.join(release_dirpath, 'main', 'binary-i386',
                              'some-package.deb')))

            release_filepath = path.join(release_dirpath, 'Release')
            # with fopen(release_filepath) as fd:
            #     self.assertEquals(fd.read(), 'Codename: xenial\nArchitectures: amd64 i386\nComponents: main\nok')
            self.assertTrue(path.exists(release_filepath))
Example #9
0
def restart_after():
    require_restart = [
        service for service in SERVICES
        if path.exists(path.join(SYSTEMD, '%s.service' % service))
    ]
    for service in require_restart:
        log_execute_assert_success(
            ['systemctl', 'stop', '%s.service' % service], allow_to_fail=True)
    yield
    for service in require_restart:
        log_execute_assert_success(
            ['systemctl', 'start',
             '%s.service' % service])
 def test_python_consume_file(self):
     from infi.app_repo.indexers.python import PythonIndexer
     with self._setup_context() as config:
         indexer = PythonIndexer(config, 'main-stable')
         indexer.initialise()
         filepath = self.write_new_package_in_incoming_directory(
             config,
             package_basename='python-v2.7.8.13-linux-oracle-7-x64',
             extension='tar.gz')
         self.assertTrue(
             indexer.are_you_interested_in_file(filepath, 'linux-oracle-7',
                                                'x64'))
         indexer.consume_file(filepath, 'linux-oracle-7', 'x64')
         print(filepath)
         self.assertTrue(
             path.exists(
                 path.join(indexer.base_directory,
                           'python-v2.7.8.13-linux-oracle-7-x64.tar.gz')))
Example #11
0
    def test_wget_consumes_ova(self):
        from infi.app_repo.indexers.wget import PrettyIndexer
        with self._setup_context() as config:
            indexer = PrettyIndexer(config, 'main-stable')
            indexer.initialise()
            filepath = self.write_new_package_in_incoming_directory(config, package_basename='application-repository-0.2.31-linux-ubuntu-lucid-x86_OVF10', extension='ova')
            self.assertTrue(indexer.are_you_interested_in_file(filepath, 'linux-ubuntu-lucid', 'x86_OVF10'))
            indexer.consume_file(filepath, 'linux-ubuntu-lucid', 'x86_OVF10')

            self.assertTrue(path.exists(path.join(indexer.base_directory, 'packages', 'application-repository', 'releases', '0.2.31', 'distributions',
                                                  'vmware-esx', 'architectures', 'x86_OVF10', 'extensions', 'ova',
                                                  'application-repository-0.2.31-linux-ubuntu-lucid-x86_OVF10.ova')))
            packages = read_json_file(path.join(indexer.base_directory, 'packages.json'))
            self.assertIsInstance(packages, list)
            self.assertGreater(len(packages), 0)
            releases = read_json_file(path.join(indexer.base_directory, 'packages', 'application-repository', 'releases.json'))
            self.assertIsInstance(packages, list)
            self.assertGreater(len(packages), 0)
Example #12
0
    def test_wget_consume_file(self):
        from infi.app_repo.indexers.wget import PrettyIndexer
        with self._setup_context() as config:
            indexer = PrettyIndexer(config, 'main-stable')
            indexer.initialise()
            filepath = self.write_new_package_in_incoming_directory(config, package_basename='my-app-0.1-linux-ubuntu-xenial-x64', extension='deb')
            self.assertTrue(indexer.are_you_interested_in_file(filepath, 'linux-ubuntu-xenial', 'x64'))
            indexer.consume_file(filepath, 'linux-ubuntu-xenial', 'x64')

            self.assertTrue(path.exists(path.join(indexer.base_directory, 'packages', 'my-app', 'releases', '0.1', 'distributions',
                                                  'linux-ubuntu-xenial', 'architectures', 'x64', 'extensions', 'deb',
                                                  'my-app-0.1-linux-ubuntu-xenial-x64.deb')))
            packages = read_json_file(path.join(indexer.base_directory, 'packages.json'))
            self.assertIsInstance(packages, list)
            self.assertGreater(len(packages), 0)
            releases = read_json_file(path.join(indexer.base_directory, 'packages', 'my-app', 'releases.json'))
            self.assertIsInstance(packages, list)
            self.assertGreater(len(packages), 0)
Example #13
0
 def assert_package_exists(self, config, package_name):
     assert path.exists(
         path.join(config.packages_directory, 'main-stable', 'index',
                   'packages', package_name))
Example #14
0
 def assert_package_exists(self, config, package_name):
     assert path.exists(path.join(config.packages_directory, 'main-stable', 'index', 'packages', package_name))