def test_build_work_items(fs): backlog = helpers.Backlog() backlog._build_epic = MagicMock(return_value=None) work_items = backlog._build_work_items( MockedFiles._mock_parsed_file_list(), MockedFiles._mock_config()) backlog._build_epic.assert_any_call( MockedFiles._mock_parsed_file_list()[0], MockedFiles._mock_config()) backlog._build_epic.assert_any_call( MockedFiles._mock_parsed_file_list()[1], MockedFiles._mock_config()) backlog._build_epic.assert_any_call( MockedFiles._mock_parsed_file_list()[2], MockedFiles._mock_config()) assert work_items == [] epic = entities.Epic() epic.title = "Foobar" epic.description = "Some Description" backlog._build_epic = MagicMock(return_value=epic) work_items = backlog._build_work_items( [MockedFiles._mock_parsed_file_list()[0]], MockedFiles._mock_config()) assert len(work_items) == 1 assert work_items[0] == epic assert work_items[0].title == "Foobar" assert work_items[0].description == "Some Description"
def test_validate_roles(): v = helpers.Validation() assert v._validate_roles( './somepath/metadata.json', {}, MockedFiles._mock_config() ) == (False, "'roles' property not found in metadata './somepath/metadata.json'") assert v._validate_roles('./somepath/metadata.json', { 'roles': 'lorem ipsum' }, MockedFiles._mock_config()) == ( False, "'roles' property is not in correct format in metadata './somepath/metadata.json'" ) assert v._validate_roles('./somepath/metadata.json', { 'roles': ['lorem ipsum'] }, MockedFiles._mock_config()) == ( False, "invalid role 'lorem ipsum' in metadata './somepath/metadata.json'") assert v._validate_roles('./somepath/metadata.json', {'roles': ['AppDev']}, MockedFiles._mock_config()) is True
def test_get_and_validate_json(monkeypatch, fs): MockedFiles._mock_correct_file_system(fs) def mock_file_system_read_file_returns_None(*args, **kwargs): return None def mock_parser_json_returns_json(*args, **kwargs): content = None with open('./workitems/correct/01_epic/metadata.json', 'r') as reader: content = reader.read() reader.close() return json.loads(content) def mock_validation_validate_metadata_returns_True(*args, **kwargs): return True def mock_validation_validate_metadata_returns_False(*args, **kwargs): return (False, "there's an error") monkeypatch.setattr(helpers.FileSystem, "read_file", mock_file_system_read_file_returns_None) monkeypatch.setattr(helpers.Parser, "parse_json", mock_parser_json_returns_json) backlog = helpers.Backlog() monkeypatch.setattr(helpers.Validation, "validate_metadata", mock_validation_validate_metadata_returns_True) assert backlog._get_and_validate_json( '.', MockedFiles._mock_config()) == mock_parser_json_returns_json() monkeypatch.setattr(helpers.Validation, "validate_metadata", mock_validation_validate_metadata_returns_False) with pytest.raises(ValueError) as exc: backlog._get_and_validate_json('.', MockedFiles._mock_config()) assert "metadata not valid: there's an error" in str(exc.value)
def test_validate_metadata(): v = helpers.Validation() assert v.validate_metadata( './somepath/metadata.json', None, MockedFiles._mock_config()) == ( False, "metadata in './somepath/metadata.json' is empty") v._validate_title = MagicMock(return_value=(False, "no title")) assert v.validate_metadata('./somepath/metadata.json', { 'description': 'lorem desc', 'tags': ['01_Folder'], 'roles': [] }, MockedFiles._mock_config()) == (False, "no title") v._validate_title = MagicMock(return_value=True) v._validate_description = MagicMock(return_value=(False, "no description")) assert v.validate_metadata('./somepath/metadata.json', { 'title': 'lorem ipsum', 'tags': ['01_Folder'], 'roles': [] }, MockedFiles._mock_config()) == (False, "no description") v._validate_title = MagicMock(return_value=True) v._validate_description = MagicMock(return_value=True) v._validate_tags = MagicMock(return_value=(False, "no tags")) assert v.validate_metadata('./somepath/metadata.json', { 'title': 'lorem ipsum', 'description': 'lorem desc', 'roles': [] }, MockedFiles._mock_config()) == (False, "no tags") v._validate_title = MagicMock(return_value=True) v._validate_description = MagicMock(return_value=True) v._validate_tags = MagicMock(return_value=True) v._validate_roles = MagicMock(return_value=(False, "no roles")) assert v.validate_metadata('./somepath/metadata.json', { 'title': 'lorem ipsum', 'description': 'lorem desc', 'tags': ['01_Folder'] }, MockedFiles._mock_config()) == (False, "no roles") v._validate_title = MagicMock(return_value=True) v._validate_description = MagicMock(return_value=True) v._validate_tags = MagicMock(return_value=True) v._validate_roles = MagicMock(return_value=True) assert v.validate_metadata( './somepath/metadata.json', { 'title': 'lorem ipsum', 'description': 'lorem desc', 'tags': ['01_Folder'], 'roles': [] }, MockedFiles._mock_config()) is True
def mock_get_config_return_config(*args, **kwargs): return MockedFiles._mock_config()