def test_get_commits(self): project = Project(name='test_name', owner=constant.TEST_UID, repositories={'Github': [324982851]}, updated=datetime(2020, 1, 1, 1, 11, 11, 0, tzinfo=timezone.utc) ).to_dict() commits = self.model._ProjectCommitModel__get_commits(project) expect = Commits(name='test_name', member=['gougon'], commit_list=[ Commit( author='gougon', message='Create README.md', lines=2, time='2020/12/28' ), Commit( author='gougon', message='Update README.md', lines=1, time='2021/01/03' ) ]) assert commits.name == expect.name assert commits.member == expect.member assert commits.commit_list == expect.commit_list
def test_eq(self): commit_wa = Commit(author='author2', message='message', lines='100', time='2020/01/01') commit_wm = Commit(author='author', message='message2', lines='100', time='2020/01/01') commit_wl = Commit(author='author', message='message', lines='101', time='2020/01/01') commit_wt = Commit(author='author', message='message', lines='100', time='2020/01/02') commit = Commit(author='author', message='message', lines='100', time='2020/01/01') assert self.commit == commit assert self.commit != commit_wa assert self.commit != commit_wl assert self.commit != commit_wm assert self.commit != commit_wt
def test_transform_commit(self): src_commit = { 'author': { 'name': None, 'email': None }, 'commit': { 'author': { 'name': 'name', 'email': '*****@*****.**', 'date': '2020/01/01, 01:11:11' }, 'message': 'message', 'html_url': 'https://a/b', 'url': 'https://b/a' }, 'stats': { 'additions': 1, 'deletions': 30, 'total': 31 } } dest_commit = self.model._ProjectCommitModel__transform_commit(src_commit) expect = Commit(author='name', message='message', lines=31, time='2020/01/01') assert dest_commit.author == expect.author assert dest_commit.message == expect.message assert dest_commit.lines == expect.lines assert dest_commit.time == expect.time
def test_build_commits(self): pro_name = 'pname' commit1 = Commit(author='name1', message='message1', lines=31, time='2020/01/01') commit2 = Commit(author='name2', message='message2', lines=32, time='2020/01/02') cmt_list = [commit1, commit2] dest_cmts = self.model._ProjectCommitModel__build_commits(pro_name, cmt_list) expect = Commits(pro_name, ['name1', 'name2'], cmt_list) assert dest_cmts.name == expect.name assert set(dest_cmts.member) == set(expect.member) assert dest_cmts.commit_list == expect.commit_list
def test_sort_commits_by_time_asc(self): commit1 = Commit(author='name1', message='message1', lines=31, time='2020/01/01') commit2 = Commit(author='name2', message='message2', lines=32, time='2020/01/02') commit3 = Commit(author='name3', message='message3', lines=34, time='2020/01/03') commits = Commits('pname', ['name2', 'name3', 'name1'], [commit2, commit3, commit1]) self.model._ProjectCommitModel__sort_commits_by_time(commits, 'asc') expect = Commits('pname', ['name1', 'name2', 'name3'], [commit1, commit2, commit3]) assert commits.commit_list == expect.commit_list
def test_sort_commits_by_time_error(self): commit1 = Commit(author='name1', message='message1', lines=31, time='2020/01/01') commit2 = Commit(author='name2', message='message2', lines=32, time='2020/01/02') commit3 = Commit(author='name3', message='message3', lines=34, time='2020/01/03') commits = Commits('pname', ['name2', 'name3', 'name1'], [commit2, commit3, commit1]) with pytest.raises(SystemExit) as cm: self.model._ProjectCommitModel__sort_commits_by_time(commits, 'whatever') assert cm.match('sort type only have "desc" & "asc"')
def test_from_dict(self): source = { 'author' : 'author', 'message' : 'message', 'lines' : '100', 'time' : '2020/01/01' } commit = Commit.from_dict(source) assert commit.author == 'author' assert commit.message == 'message' assert commit.lines == '100' assert commit.time == '2020/01/01'
def setup_class(self): self.commit = Commit(author='author', message='message', lines='100', time='2020/01/01')
class TestCommit(): @classmethod def setup_class(self): self.commit = Commit(author='author', message='message', lines='100', time='2020/01/01') def test_constructor(self): assert self.commit.author == 'author' assert self.commit.message == 'message' assert self.commit.lines == '100' assert self.commit.time == '2020/01/01' def test_from_dict(self): source = { 'author' : 'author', 'message' : 'message', 'lines' : '100', 'time' : '2020/01/01' } commit = Commit.from_dict(source) assert commit.author == 'author' assert commit.message == 'message' assert commit.lines == '100' assert commit.time == '2020/01/01' def test_to_dict(self): dest = self.commit.to_dict() expect = { 'author' : 'author', 'message' : 'message', 'lines' : '100', 'time' : '2020/01/01' } assert dest == expect def test_eq(self): commit_wa = Commit(author='author2', message='message', lines='100', time='2020/01/01') commit_wm = Commit(author='author', message='message2', lines='100', time='2020/01/01') commit_wl = Commit(author='author', message='message', lines='101', time='2020/01/01') commit_wt = Commit(author='author', message='message', lines='100', time='2020/01/02') commit = Commit(author='author', message='message', lines='100', time='2020/01/01') assert self.commit == commit assert self.commit != commit_wa assert self.commit != commit_wl assert self.commit != commit_wm assert self.commit != commit_wt