def test_is_repo_type_should_return_True_if_repository_type(self): assert artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.LOCAL_REPOSITORY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_REPO_DATA, self.STATE).is_repo_type() assert artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.REMOTE_REPOSITORY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_REPO_DATA, self.STATE).is_repo_type() assert artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.VIRTUAL_REPOSITORY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_REPO_DATA, self.STATE).is_repo_type()
def test_should_return_artifactory_api_request_with_proper_path_for_repo_type( self): assert artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.LOCAL_REPOSITORY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_REPO_DATA, self.STATE ).artifactory_api_request().path == "/api/repositories/sample-repo" assert artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.REMOTE_REPOSITORY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_REPO_DATA, self.STATE ).artifactory_api_request().path == "/api/repositories/sample-repo" assert artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.VIRTUAL_REPOSITORY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_REPO_DATA, self.STATE ).artifactory_api_request().path == "/api/repositories/sample-repo"
def test_data_same_should_return_false_if_group_data_are_different_for_permissions( self): data = { 'repositories': ['repo-a'], 'principals': { 'groups': { 'mathematicians': ['r', 'd', 'w'], } } } artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.PERMISSION_TYPE, self.USERNAME, self.PASSWORD, data, self.STATE) other_data = { "default_key": "default_value", 'repositories': ['repo-b', 'repo-a'], 'principals': { 'groups': { 'mathematicians': ['d', 'w', 'r'], 'scientists': ['n', 'm'] } } } assert not artifactory_api_service.is_data_same(other_data)
def test_should_return_artifactory_api_request_with_proper_path_for_permission_type( self): data = {"name": "permission1"} assert artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.PERMISSION_TYPE, self.USERNAME, self.PASSWORD, data, self.STATE).artifactory_api_request( ).path == "/api/security/permissions/permission1"
def test_should_return_artifactory_api_request_with_proper_path_for_group_type( self): data = {"name": "group1"} assert artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.GROUP_TYPE, self.USERNAME, self.PASSWORD, data, self.STATE).artifactory_api_request( ).path == "/api/security/groups/group1"
def test_artifactory_api_service_should_create_returns_false_if_state_is_absent( self): with patch.multiple(artifactory_entity.ArtifactoryApiRequest, get_entity=DEFAULT) as values: artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, self.TEST_ENTITY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_DATA, "absent") assert not artifactory_api_service.should_create()
def test_artifactory_api_service_should_delete_returns_true_if_state_is_absent_and_status_code_is_200( self): with patch.multiple(artifactory_entity.ArtifactoryApiRequest, get_entity=DEFAULT) as values: values['get_entity'].return_value = MagicMock(status_code=200) artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, self.TEST_ENTITY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_DATA, "absent") assert artifactory_api_service.should_delete()
def test_should_return_default_values_in_full_data(self): artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, self.TEST_ENTITY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_DATA, self.STATE) full_data = artifactory_api_service.full_data() assert full_data == { "default_key": "default_value", "test-key": "test-value" }
def test_artifactory_api_service_should_update_returns_false_if_status_code_is_not_200( self): with patch.multiple(artifactory_entity.ArtifactoryApiRequest, get_entity=DEFAULT) as values: values['get_entity'].return_value = MagicMock(status_code=404) artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, self.TEST_ENTITY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_DATA, self.STATE) assert not artifactory_api_service.should_update()
def test_should_return_overridden_values_for_repo_type_in_full_data(self): artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.LOCAL_REPOSITORY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_REPO_DATA, self.STATE) full_data = artifactory_api_service.full_data() assert full_data == { "default_key": "overridden_value", "packageType": self.TEST_REPO_PACKAGE_TYPE, 'key': 'sample-repo' }
def test_data_same_should_return_false_if_data_are_different_for_virtual_repo( self): artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.VIRTUAL_REPOSITORY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_REPO_DATA, self.STATE) other_data = { "default_key": "value", "packageType": self.TEST_REPO_PACKAGE_TYPE, 'key': 'sample-repo' } assert not artifactory_api_service.is_data_same(other_data)
def test_should_return_data_provided_in_full_data(self): data = copy.deepcopy(self.TEST_DATA) data['default_key'] = 'data_value' artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, self.TEST_ENTITY_TYPE, self.USERNAME, self.PASSWORD, data, self.STATE) full_data = artifactory_api_service.full_data() assert full_data == { "default_key": "data_value", "test-key": "test-value" }
def test_should_return_data_provided_for_repo_type_in_full_data(self): data = copy.deepcopy(self.TEST_REPO_DATA) data['default_key'] = 'data_value' artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.LOCAL_REPOSITORY_TYPE, self.USERNAME, self.PASSWORD, data, self.STATE) full_data = artifactory_api_service.full_data() assert full_data == { "default_key": "data_value", "packageType": self.TEST_REPO_PACKAGE_TYPE, 'key': 'sample-repo' }
def test_artifactory_api_service_should_update(self): with patch.multiple(artifactory_entity.ArtifactoryApiRequest, post_entity=DEFAULT) as values: values['post_entity'].return_value = dict(a='b') artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, self.TEST_ENTITY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_DATA, self.STATE) result = artifactory_api_service.update() assert result == dict(a='b') values['post_entity'].assert_called_with({ "default_key": "default_value", "test-key": "test-value" })
def test_artifactory_api_service_should_update_permission_type_by_calling_create( self): with patch.multiple(artifactory_entity.ArtifactoryApiRequest, put_entity=DEFAULT) as values: values['put_entity'].return_value = dict(a='b') artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.PERMISSION_TYPE, self.USERNAME, self.PASSWORD, {"name": "permission1"}, self.STATE) result = artifactory_api_service.update() assert result == dict(a='b') values['put_entity'].assert_called_with({ "default_key": "default_value", "name": "permission1" })
def test_data_same_should_return_false_if_data_are_different_for_remote_repo( self): data = copy.deepcopy(self.TEST_REPO_DATA) data["rclass"] = "remote" data["description"] = "Alpine repo" artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, artifactory_entity.REMOTE_REPOSITORY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_REPO_DATA, self.STATE) other_data = { "default_key": "default_value", "packageType": self.TEST_REPO_PACKAGE_TYPE, 'rclass': "remote", 'key': 'sample-repo', 'description': "Sample repo (local file cache)" } assert not artifactory_api_service.is_data_same(other_data)
def test_artifactory_api_service_should_update_returns_false_if_status_code_is_200_and_data_is_different( self): with patch.multiple(artifactory_entity.ArtifactoryApiRequest, get_entity=DEFAULT) as api_request_values: with patch.multiple(artifactory_entity.ArtifactoryApiService, is_data_same=DEFAULT) as service_values: response_data = {'test-key': 'test-value'} response_mock = MagicMock(status_code=200) attrs = {'json.return_value': response_data} response_mock.configure_mock(**attrs) api_request_values['get_entity'].return_value = response_mock service_values['is_data_same'].return_value = False artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, self.TEST_ENTITY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_DATA, self.STATE) updated = artifactory_api_service.should_update() service_values['is_data_same'].assert_called_with( response_data) assert updated
def test_artifactory_api_service_should_update_returns_false_if_state_is_absent( self): artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, self.TEST_ENTITY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_DATA, "absent") assert not artifactory_api_service.should_update()
def test_artifactory_api_service_should_delete(self, mock_method): artifactory_api_service = artifactory_entity.ArtifactoryApiService( self.DOMAIN, self.TEST_ENTITY_TYPE, self.USERNAME, self.PASSWORD, self.TEST_DATA, self.STATE) result = artifactory_api_service.delete() assert result == dict(a='b')
def test_is_repo_type_should_return_False_if_not_a_repository_type(self): assert not artifactory_entity.ArtifactoryApiService( self.DOMAIN, "RANDOM_ENTITY_TYPE", self.USERNAME, self.PASSWORD, self.TEST_DATA, self.STATE).is_repo_type()