class AuditManagerTest(DatamangersTests):
    def setUp(self):
        super(AuditManagerTest, self).setUp()
        self.audit_manager = AuditManager(self.session_maker())

    @patch('atramhasis.data.datamanagers.date', Mock(today=Mock(return_value=date(2015, 8, 1))))
    def test_get_first_day(self):
        self.assertEqual('2015-07-31', self.audit_manager._get_first_day('last_day'))
        self.assertEqual('2015-07-25', self.audit_manager._get_first_day('last_week'))
        self.assertEqual('2015-07-01', self.audit_manager._get_first_day('last_month'))
        self.assertEqual('2014-08-01', self.audit_manager._get_first_day('last_year'))

    @patch('atramhasis.data.datamanagers.date', Mock(today=Mock(return_value=date(2015, 9, 15))))
    def test_get_most_popular_concepts_for_conceptscheme(self):
        self.assertListEqual([{'concept_id': 1, 'scheme_id': 1}, {'concept_id': 2, 'scheme_id': 1}],
                             self.audit_manager.get_most_popular_concepts_for_conceptscheme(1, 5, 'last_month'))
        self.assertListEqual([{'concept_id': 2, 'scheme_id': 2}],
                             self.audit_manager.get_most_popular_concepts_for_conceptscheme(2, 5, 'last_month'))
        self.assertListEqual([{'concept_id': 1, 'scheme_id': 1}],
                             self.audit_manager.get_most_popular_concepts_for_conceptscheme(1, 1, 'last_month'))
        self.assertListEqual([],
                             self.audit_manager.get_most_popular_concepts_for_conceptscheme(1, 5, 'last_day'))