def get_original_hash(repo, rev): if pygit2.reference_is_valid_name(rev): commit = repo.lookup_reference(rev).peel() else: commit = repo[rev] return ORIGINAL_COMMIT_REGEX.search(commit.message).group(1)
def test_invalid_arguments(self): with pytest.raises(TypeError): reference_is_valid_name() with pytest.raises(TypeError): reference_is_valid_name(None) with pytest.raises(TypeError): reference_is_valid_name(1) with pytest.raises(TypeError): reference_is_valid_name('too', 'many')
def test_history(client): response = client.simulate_get('/datasets/{}/history'.format('ds000001')) assert response.status == falcon.HTTP_OK history = json.loads(response.content) if response.content else None assert history is not None assert len(history["log"]) == 4 for entry in history["log"]: assert isinstance(entry["authorEmail"], str) assert '@' in entry["authorEmail"] assert isinstance(entry["authorName"], str) assert isinstance(entry["date"], int) assert isinstance(entry["message"], str) assert isinstance(entry["id"], str) assert len(entry["id"]) == 40 assert isinstance(entry["references"], str) # If there is any references content, check the format if (len(entry["references"]) > 0): for ref in entry["references"].split(','): # Full references will always have at least "refs" prefixed assert len(ref) > 4 pygit2.reference_is_valid_name(ref)
def test_invalid_reference_names(self): assert not reference_is_valid_name('') assert not reference_is_valid_name(' refs/heads/master') assert not reference_is_valid_name('refs/heads/in..valid') assert not reference_is_valid_name('refs/heads/invalid~') assert not reference_is_valid_name('refs/heads/invalid^') assert not reference_is_valid_name('refs/heads/invalid:') assert not reference_is_valid_name('refs/heads/invalid\\') assert not reference_is_valid_name('refs/heads/invalid?') assert not reference_is_valid_name('refs/heads/invalid[') assert not reference_is_valid_name('refs/heads/invalid*') assert not reference_is_valid_name('refs/heads/@{no}') assert not reference_is_valid_name('refs/heads/foo//bar')
def test_valid_reference_names_unicode(self): assert reference_is_valid_name('refs/heads/ünicöde') assert reference_is_valid_name('refs/tags/😀')
def test_valid_reference_names_ascii(self): assert reference_is_valid_name('HEAD') assert reference_is_valid_name('refs/heads/master') assert reference_is_valid_name('refs/heads/perfectly/valid') assert reference_is_valid_name('refs/tags/v1') assert reference_is_valid_name('refs/special/ref')