class TestCommitClass: @mock.patch('lib.properties.Properties') def setup(self, mock_props): mock_props.ticket_pattern = 'TIK-1111' mock_props.ticket_url = 'http://tikurl/' mock_props.repo_web_url = 'http://repourl/' self.sut = Commit() self.sut.cid = 'abcdef1234567890' self.sut.name = 'Bob Dole' self.sut.email = '*****@*****.**' self.sut.date = '01/02/03' self.sut.subject = 'TIK-1111 - The commit subject' self.sut.body = 'This is the body\nthis is more of the body\nand more' self.sut.props = mock_props def test_to_str_formats_output_as_expected(self): expected = "\n".join([ "### [TIK-1111](http://tikurl/TIK-1111) - The commit subject", "", " - __commit:__ [abcdef1234567890](http://repourl/commit/abcdef1234567890)", " - __author:__ Bob Dole <*****@*****.**>", " - __date:__ 01/02/03", "", "> This is the body", "> this is more of the body", "> and more", "" ]) eq_(expected, str(self.sut)) def test_is_formatted_correctly_returns_true(self): ok_(self.sut.is_formatted_correctly()) def test_is_formatted_correctly_returns_false(self): self.sut.subject = "This subject is way too damn long! It just keeps going!" ok_(not self.sut.is_formatted_correctly()) self.sut.subject = "This is a shorter subject" self.sut.body = "" ok_(not self.sut.is_formatted_correctly()) def test_has_ticket_reference_returns_as_expected(self): ok_(self.sut.has_ticket_reference()) self.sut.subject = "This is a subject" ok_(not self.sut.has_ticket_reference()) self.sut.body = "This is a body with a ticket reference TIK-1111 in it" ok_(self.sut.has_ticket_reference) def test_get_ticket_number_returns_as_expected(self): eq_("TIK-1111", self.sut.get_ticket_number()) self.sut.subject = "This is a subject" assert_is_none(self.sut.get_ticket_number()) self.sut.body = "This is a body with a ticket reference TIK-1111 in it" eq_("TIK-1111", self.sut.get_ticket_number()) def test_eq_works_as_expected(self): sut1 = self.sut sut2 = Commit() sut2.cid = sut1.cid eq_(sut1, sut2) def test_hash_works_as_expected(self): eq_(hash("abcdef1234567890"), hash(self.sut))