Beispiel #1
0
    def test_add(self, fake_gpg, fake_lib):
        step = Mock()
        repository = Mock()
        path = Mock()
        key_ids = [1, 2, 3]
        fake_gpg.return_value = (path, key_ids)

        # test
        remote = Remote(step, repository)
        remote.add()

        # validation
        fake_lib.Remote.assert_called_once_with(remote.remote_id, repository)
        fake_lib.Remote.return_value.update.assert_called_once_with()
        fake_lib.Remote.return_value.import_key.assert_called_once_with(
            path, key_ids)
        self.assertEqual(fake_lib.Remote.return_value.url, remote.url)
        self.assertEqual(fake_lib.Remote.return_value.ssl_key_path,
                         remote.ssl_key_path)
        self.assertEqual(fake_lib.Remote.return_value.ssl_cert_path,
                         remote.ssl_cert_path)
        self.assertEqual(fake_lib.Remote.return_value.ssl_ca_path,
                         remote.ssl_ca_path)
        self.assertEqual(fake_lib.Remote.return_value.ssl_validation,
                         remote.ssl_validation)
        self.assertEqual(fake_lib.Remote.return_value.proxy_url,
                         remote.proxy_url)
        self.assertTrue(fake_lib.Remote.return_value.gpg_validation,
                        remote.ssl_validation)
Beispiel #2
0
    def test_proxy_without_host(self):
        config = {}
        step = Mock()
        step.get_config.return_value = config

        # test
        remote = Remote(step, None)

        # validation
        self.assertEqual(remote.proxy_url, None)
Beispiel #3
0
    def test_ssl_validation(self):
        config = {importer_constants.KEY_SSL_VALIDATION: True}
        step = Mock()
        step.get_config.return_value = config

        # test
        remote = Remote(step, None)
        validation = remote.ssl_validation

        # validation
        self.assertTrue(validation)
        self.assertTrue(isinstance(validation, bool))
Beispiel #4
0
    def test_ssl_validation_not_specified(self):
        config = {}
        step = Mock()
        step.get_config.return_value = config

        # test
        remote = Remote(step, None)
        validation = remote.ssl_validation

        # validation
        self.assertFalse(validation)
        self.assertTrue(isinstance(validation, bool))
Beispiel #5
0
    def test_add(self, fake_gpg, fake_lib):
        step = Mock()
        repository = Mock()
        path = Mock()
        key_ids = [1, 2, 3]
        fake_gpg.return_value = (path, key_ids)

        # test
        remote = Remote(step, repository)
        remote.add()

        # validation
        fake_lib.Remote.assert_called_once_with(remote.remote_id, repository)
        fake_lib.Remote.return_value.update.assert_called_once_with()
        fake_lib.Remote.return_value.import_key.assert_called_once_with(path, key_ids)
        self.assertEqual(fake_lib.Remote.return_value.url, remote.url)
        self.assertEqual(fake_lib.Remote.return_value.ssl_key_path, remote.ssl_key_path)
        self.assertEqual(fake_lib.Remote.return_value.ssl_cert_path, remote.ssl_cert_path)
        self.assertEqual(fake_lib.Remote.return_value.ssl_ca_path, remote.ssl_ca_path)
        self.assertEqual(fake_lib.Remote.return_value.ssl_validation, remote.ssl_validation)
        self.assertEqual(fake_lib.Remote.return_value.proxy_url, remote.proxy_url)
        self.assertTrue(fake_lib.Remote.return_value.gpg_validation, remote.ssl_validation)
Beispiel #6
0
    def test_proxy_without_auth(self):
        host = 'http://dog.com'
        port = '3128'
        config = {
            importer_constants.KEY_PROXY_HOST: host,
            importer_constants.KEY_PROXY_PORT: port,
        }
        step = Mock()
        step.get_config.return_value = config

        proxy_url = 'http://dog.com:3128'

        # test
        remote = Remote(step, None)

        # validation
        self.assertEqual(remote.proxy_url, proxy_url)
Beispiel #7
0
    def test_proxy_url_without_port(self):
        host = 'http://dog.com'
        port = None
        user = '******'
        password = '******'
        config = {
            importer_constants.KEY_PROXY_HOST: host,
            importer_constants.KEY_PROXY_PORT: port,
            importer_constants.KEY_PROXY_USER: user,
            importer_constants.KEY_PROXY_PASS: password,
        }
        step = Mock()
        step.get_config.return_value = config

        proxy_url = 'http://*****:*****@dog.com'

        # test
        remote = Remote(step, None)

        # validation
        self.assertEqual(remote.proxy_url, proxy_url)
Beispiel #8
0
    def test_gpg_key(self, fake_gpg):
        keys = [1, 2, 3]
        key_list = [dict(keyid=k) for k in keys]
        working_dir = '/tmp/test'
        config = {constants.IMPORTER_CONFIG_KEY_GPG_KEYS: keys}
        step = Mock()
        step.get_config.return_value = config
        step.get_working_dir.return_value = working_dir

        fake_gpg.return_value.list_keys.return_value = key_list

        # test
        remote = Remote(step, None)
        path, key_ids = remote.gpg_keys

        # validation
        fake_gpg.assert_called_once_with(gnupghome=working_dir)
        self.assertEqual(fake_gpg.return_value.import_keys.call_args_list,
                         [((k, ), {}) for k in keys])
        self.assertEqual(path, os.path.join(working_dir, 'pubring.gpg'))
        self.assertEqual(key_ids, [k['keyid'] for k in key_list])
Beispiel #9
0
    def test_ssl_ca_path(self, fake_open):
        cert = 'test-key'
        config = {importer_constants.KEY_SSL_CA_CERT: cert}
        working_dir = '/tmp/test'
        step = Mock()
        step.get_config.return_value = config
        step.get_working_dir.return_value = working_dir
        fp = Mock(__enter__=Mock(), __exit__=Mock())
        fp.__enter__.return_value = fp
        fake_open.return_value = fp

        # test
        remote = Remote(step, None)
        path = remote.ssl_ca_path

        # validation
        expected_path = os.path.join(working_dir, 'ca.pem')
        fake_open.assert_called_once_with(expected_path, 'w+')
        fp.write.assert_called_once_with(cert)
        fp.__enter__.assert_called_once_with()
        fp.__exit__.assert_called_once_with(None, None, None)
        self.assertEqual(path, expected_path)
Beispiel #10
0
    def test_proxy_url(self):
        host = 'proxy-host'
        port = 'proxy-port'
        user = '******'
        password = '******'
        config = {
            importer_constants.KEY_PROXY_HOST: host,
            importer_constants.KEY_PROXY_PORT: port,
            importer_constants.KEY_PROXY_USER: user,
            importer_constants.KEY_PROXY_PASS: password,
        }
        step = Mock()
        step.get_config.return_value = config

        proxy_url = '@'.join((':'.join((user, password)), ':'.join(
            (host, port))))

        # test
        remote = Remote(step, None)

        # validation
        self.assertEqual(remote.proxy_url, proxy_url)
Beispiel #11
0
    def test_ssl_key_path(self, fake_open, fake_chmod):
        key = 'test-key'
        config = {importer_constants.KEY_SSL_CLIENT_KEY: key}
        working_dir = '/tmp/test'
        step = Mock()
        step.get_config.return_value = config
        step.get_working_dir.return_value = working_dir
        fp = Mock(__enter__=Mock(), __exit__=Mock())
        fp.__enter__.return_value = fp
        fake_open.return_value = fp

        # test
        remote = Remote(step, None)
        path = remote.ssl_key_path

        # validation
        expected_path = os.path.join(working_dir, 'key.pem')
        fake_open.assert_called_once_with(expected_path, 'w+')
        fp.write.assert_called_once_with(key)
        fp.__enter__.assert_called_once_with()
        fp.__exit__.assert_called_once_with(None, None, None)
        fake_chmod.assert_called_once_with(expected_path, 0600)
        self.assertEqual(path, expected_path)
Beispiel #12
0
 def test_config(self):
     step = Mock()
     remote = Remote(step, None)
     self.assertEqual(remote.config, step.get_config.return_value)
Beispiel #13
0
 def test_working_dir(self):
     step = Mock()
     remote = Remote(step, None)
     self.assertEqual(remote.working_dir, step.get_working_dir.return_value)
Beispiel #14
0
 def test_remote_id(self):
     step = Mock()
     step.parent = Mock(repo_id='123')
     remote = Remote(step, None)
     self.assertEqual(remote.remote_id, step.parent.repo_id)
Beispiel #15
0
 def test_url(self):
     step = Mock()
     step.parent = Mock(feed_url='http://')
     remote = Remote(step, None)
     self.assertEqual(remote.url, step.parent.feed_url)
Beispiel #16
0
 def test_init(self):
     step = Mock()
     repository = Mock()
     remote = Remote(step, repository)
     self.assertEqual(remote.step, step)
     self.assertEqual(remote.repository, repository)