class TestMembership(unittest.TestCase): def setUp(self): self.membership = Membership() def test_append_new(self): self.membership.append("dogs", datetime(2015, 1, 1)) self.assertTrue(self.membership.contains("dogs")) self.assertEqual(datetime(2015, 1, 1), self.membership.join_time("dogs")) def test_append_updatetime_new(self): self.membership.append("dogs", datetime(2015, 1, 1)) self.membership.append("dogs", datetime(2014, 1, 1)) self.assertEqual(datetime(2014, 1, 1), self.membership.join_time("dogs")) def test_append_updatetime_unchanged(self): self.membership.append("dogs", datetime(2015, 1, 1)) self.membership.append("dogs", datetime(2016, 1, 1)) self.assertEqual(datetime(2015, 1, 1), self.membership.join_time("dogs")) def test_filter(self): self.membership.append("dogs", datetime(2017, 1, 1)) self.membership.append("cats", datetime(2016, 1, 1)) self.membership.append("birds", datetime(2016, 1, 2)) self.membership.filter_before_time(datetime(2016, 2, 1)) self.assertFalse(self.membership.contains("dogs")) self.assertTrue(self.membership.contains("cats")) self.assertTrue(self.membership.contains("birds"))