from g2h.commit_page import CommitPage, redact_email from unittest.mock import MagicMock def test_init(): commit = MagicMock() commit.hexsha = '123' page = CommitPage('test/commit', 'commit test', commit, '') assert(page.name == 'commit test') assert(page.out_file_path == 'test/commit/123/_index.md') assert(page.template.name == 'commit.md') def test_context(): commit = MagicMock() commit.hexsha = '123' commit.author.email = 'unit@te.st' page = CommitPage('test/commit', 'commit test', commit, 'commit/content') context = page.context() assert(context['title'] == 'commit test: 123') assert(context['commit'] == commit) assert(context['redacted_email'] == 'u...@te.st') assert(context['content_subdir'] == 'commit/content') def test_redacting_email(): assert(redact_email(None) == '') assert(redact_email('') == '') assert(redact_email('a') == 'a...') assert(redact_email('az') == 'a...') assert(redact_email('root') == 'r...') assert(redact_email('root@localhost') == 'r...@localhost') assert(redact_email('test@example.com') == 't...@example.com') assert(redact_email('test@sub.example.com') == 't...@sub.example.com') assert(redact_email('az@example.com') == 'a...@example.com') assert(redact_email('a@example.com') == 'a...@example.com') assert(redact_email('@example.com') == '@example.com') assert(redact_email('test@') == 't...@') assert(redact_email('az@') == 'a...@') assert(redact_email('@') == '@') assert(redact_email('rootuser') == 'ro...') assert(redact_email('username@localhost') == 'us...@localhost') assert(redact_email('mailbox@example.com') == 'ma...@example.com') assert(redact_email('testuser@sub.example.com') == 'te...@sub.example.com') assert(redact_email('abcde@example.com') == 'a...@example.com') assert(redact_email('abcdef@example.com') == 'ab...@example.com')