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_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." )
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) )
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)
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)
def test_invalid_path(self, mock_cwd): mock_cwd.return_value = '/road/to/nowhere/' with self.assertRaises(LookupError): Config()
def test_load(self, mock_cwd): mock_cwd.return_value = self.temp_dir config = Config() self.assertIsInstance(config._data, ConfigDict)