def test_team(self, mock_logger, mocked_os):
        mocked_os.return_value = self.temp_dir
        config = Config()

        config.validate()
        self.assertEquals(config.team, config._data['team'])
        self.assertEquals(config.team, 'itops')
        self.assertEquals(config.team, config.get('team'))
        self.assertIsInstance(config.team, ConfigUnicode)
    def test_original_config_mutation(self, mock_cwd):
        # self.skipTest('need to fix issues with config._data.  should be a ConfigDict not dict.')
        mock_cwd.return_value = self.temp_dir

        config = Config()
        original_md5 = md5(json.dumps(config._data).encode()).digest()
        config.validate()

        self.assertEquals(original_md5, md5(json.dumps(config._data).encode()).digest())
    def test_path_override(self, mocked_load, mocked_logger):
        with self.assertRaises(TypeError):
            Config(path_override=121412)
            mocked_logger.assert_called_once_with(
                "path_override must be a string.")
            mocked_load.assert_not_called()

        config = Config('/some/new/path/')
        self.assertEquals(config._path, '/some/new/path/')
    def test_hosts(self, mock_logger, mocked_os):
        mocked_os.return_value = self.temp_dir
        config = Config()

        config.validate()
        self.assertEquals(config.project, config._data['project'])
        self.assertEquals(config.project, 'docker-example')
        self.assertEquals(config.project, config.get('project'))
        self.assertIsInstance(config.project, ConfigUnicode)
    def test_hosts(self, mock_logger, mocked_os):
        mocked_os.return_value = self.temp_dir
        config = Config()

        config.validate()
        self.assertEquals(config.project, config._data["project"])
        self.assertEquals(config.project, "docker-example")
        self.assertEquals(config.project, config.get("project"))
        self.assertIsInstance(config.project, ConfigUnicode)
    def test_team(self, mock_logger, mocked_os):
        mocked_os.return_value = self.temp_dir
        config = Config()

        config.validate()
        self.assertEquals(config.team, config._data["team"])
        self.assertEquals(config.team, "itops")
        self.assertEquals(config.team, config.get("team"))
        self.assertIsInstance(config.team, ConfigUnicode)
    def test_original_config_mutation(self, mock_cwd):
        # self.skipTest('need to fix issues with config._data.  should be a ConfigDict not dict.')
        mock_cwd.return_value = self.temp_dir

        config = Config()
        original_md5 = md5(json.dumps(config._data).encode()).digest()
        config.validate()

        self.assertEquals(original_md5,
                          md5(json.dumps(config._data).encode()).digest())
    def test_without_project(self, mock_logger, mocked_os):
        mocked_os.return_value = self.temp_dir
        config = Config()
        del config._data['project']
        with self.assertRaises(ConfigValidationException) as cve:
            config.validate()

        self.assertEquals('required', cve.exception.validation_type)
        self.assertIn('project', cve.exception.validation_value)
        mock_logger.assert_called_with(
            'root failed validation: required. Potential fixes in root add/delete/update project.'
        )
    def test_without_project(self, mock_logger, mocked_os):
        mocked_os.return_value = self.temp_dir
        config = Config()
        del config._data["project"]
        with self.assertRaises(ConfigValidationException) as cve:
            config.validate()

        self.assertEquals("required", cve.exception.validation_type)
        self.assertIn("project", cve.exception.validation_value)
        mock_logger.assert_called_with(
            "root failed validation: required. Potential fixes in root add/delete/update project."
        )
Example #10
0
    def test_with_team_misspelled(self, mock_logger, mocked_os):
        mocked_os.return_value = self.temp_dir
        config = Config()
        config._data['tem'] = config._data['team']
        del config._data['team']
        with self.assertRaises(ConfigValidationException) as cve:
            config.validate()

        self.assertEquals('required', cve.exception.validation_type)
        self.assertEquals('root', cve.exception.property_name)
        mock_logger.assert_called_with(
            'root failed validation: required. Potential fixes in root add/delete/update team.'
        )
    def test_with_team_misspelled(self, mock_logger, mocked_os):
        mocked_os.return_value = self.temp_dir
        config = Config()
        config._data["tem"] = config._data["team"]
        del config._data["team"]
        with self.assertRaises(ConfigValidationException) as cve:
            config.validate()

        self.assertEquals("required", cve.exception.validation_type)
        self.assertEquals("root", cve.exception.property_name)
        mock_logger.assert_called_with(
            "root failed validation: required. Potential fixes in root add/delete/update team."
        )
    def test_team_wrong_type(self, mock_logger, mocked_os):
        mocked_os.return_value = self.temp_dir
        config = Config()
        config._data["team"] = 3452345

        with self.assertRaises(ConfigValidationException) as cve:
            config.validate()

        self.assertEquals("type", cve.exception.validation_type)
        self.assertEquals("team", cve.exception.property_name)
        text_type = six.string_types[0].__name__
        mock_logger.assert_called_with(
            "team failed validation: type. " "Potential fixes in team add/delete/update {0}, {0}.".format(text_type)
        )
Example #13
0
    def test_project_wrong_type(self, mock_logger, mocked_os):
        mocked_os.return_value = self.temp_dir
        config = Config()
        config._data['project'] = 763463423

        with self.assertRaises(ConfigValidationException) as cve:
            config.validate()

        self.assertEquals('type', cve.exception.validation_type)
        self.assertEquals('project', cve.exception.property_name)
        text_type = six.string_types[0].__name__
        mock_logger.assert_called_with(
            'project failed validation: type. '
            'Potential fixes in project add/delete/update {0}, {0}.'.format(
                text_type))
    def _tags(self, args, **extra_args):
        # create config
        config = Config(verbose=False)

        # validate config file
        config.validate()

        # create registries
        registries = _create_registries(config.get('registries'))

        marshaling_yard = registries.get(args.alias)

        if not marshaling_yard:
            raise LookupError('was unable to find a registry aliased: {0} in the configuration file.'.format(args.alias))

        logger.info('From: {0}'.format(marshaling_yard.location))
        for tag in marshaling_yard.tags(args.image_name):
            logger.info(tag)
    def _images(self, args, **extra_args):
        # create config
        config = Config(verbose=False)

        # validate config file
        config.validate()

        # create registries
        registries = _create_registries(config.get('registries'))

        marshaling_yard = registries.get(args.alias)

        if not marshaling_yard:
            raise LookupError('was unable to find a registry aliased: {0} in the configuration file.'.format(args.alias))

        logger.info('Images:')
        for match in marshaling_yard.search(args.terms):
            logger.info(match)
    def _tags(self, args, **extra_args):
        # create config
        config = Config(verbose=False)

        # validate config file
        config.validate()

        # create registries
        registries = _create_registries(config.get('registries'))

        marshaling_yard = registries.get(args.alias)

        if not marshaling_yard:
            raise LookupError(
                'was unable to find a registry aliased: {0} in the configuration file.'
                .format(args.alias))

        logger.info('From: {0}'.format(marshaling_yard.location))
        for tag in marshaling_yard.tags(args.image_name):
            logger.info(tag)
    def _images(self, args, **extra_args):
        # create config
        config = Config(verbose=False)

        # validate config file
        config.validate()

        # create registries
        registries = _create_registries(config.get('registries'))

        marshaling_yard = registries.get(args.alias)

        if not marshaling_yard:
            raise LookupError(
                'was unable to find a registry aliased: {0} in the configuration file.'
                .format(args.alias))

        logger.info('Images:')
        for match in marshaling_yard.search(args.terms):
            logger.info(match)
Example #18
0
    def test_config_path(self, mocked_os, mocked_load):
        mocked_os.return_value = self.temp_dir
        config = Config()

        self.assertEquals(config._path, self.temp_dir)
        mocked_load.assert_called_once_with(config)
Example #19
0
    def test_invalid_path(self, mock_cwd):
        mock_cwd.return_value = '/road/to/nowhere/'

        with self.assertRaises(LookupError):
            Config()
Example #20
0
    def test_load(self, mock_cwd):
        mock_cwd.return_value = self.temp_dir
        config = Config()

        self.assertIsInstance(config._data, ConfigDict)