def test_cancel(self): start = dt.datetime(2002, 4, 6, 5, 6) handler = SQLDataHandler(sqlite3.Connection(DATABASE_PATH)) handler.new_category('Test') handler.start('Test', start) self.assertTrue(handler.is_active_session()) handler.cancel() self.assertFalse(handler.is_active_session()) records = handler.get_records_between(dt.datetime(2002, 4, 6, 5, 0), dt.datetime(2002, 4, 6, 5, 10)) self.assertEquals(records, [])
def test_multiple_sessions(self): start1 = dt.datetime(2010, 1, 1, 10, 10) end1 = dt.datetime(2010, 1, 1, 12) start2 = dt.datetime(2010, 1, 1, 13, 0) end2 = dt.datetime(2010, 1, 1, 15, 0) handler = SQLDataHandler(sqlite3.Connection(DATABASE_PATH)) categories = 'AP Bio,AP Chem,Physics 2,Biology 101,CS 61A'.split(',') for cat in categories: handler.new_category(cat) handler.start('AP Chem', start1) self.assertTrue(handler.is_active_session()) with self.assertRaises(RuntimeError): handler.start('Biology 101') handler.complete(end1) self.assertFalse(handler.is_active_session()) handler.start('Biology 101', start2) self.assertTrue(handler.is_active_session()) handler.complete(end2) self.assertFalse(handler.is_active_session()) range_begins = [ dt.datetime(2010, 1, 1, 10, 0), dt.datetime(2010, 1, 1, 10, 0), dt.datetime(2010, 1, 1, 10, 20), dt.datetime(2010, 1, 1, 13, 5) ] range_ends = [ dt.datetime(2010, 1, 1, 10, 11), dt.datetime(2010, 1, 1, 13, 14), dt.datetime(2010, 1, 1, 13, 14), dt.datetime(2010, 1, 1, 13, 10) ] er1 = Record('AP Chem', start1, end1) er2 = Record('Biology 101', start2, end2) expecteds = [[er1], [er1, er2], [er2], []] for rb, re, expected in zip(range_begins, range_ends, expecteds): with self.subTest(rb=rb, re=re, expected=expected): result = list(handler.get_records_between(rb, re)) self.assertEqual(expected, result)
def test_basic_session(self): start = dt.datetime(2015, 4, 5, 2, 0) end = dt.datetime(2015, 4, 5, 3, 30) handler = SQLDataHandler(sqlite3.Connection(DATABASE_PATH)) categories = 'AP Bio,AP Chem,Physics 2,Biology 101,CS 61A'.split(',') for cat in categories: handler.new_category(cat) with self.assertRaises(RuntimeError): handler.complete() with self.assertRaises(ValueError): handler.start(-5, dt.datetime.now()) handler.start('AP Bio', start) self.assertTrue(handler.is_active_session()) handler.complete(end) self.assertFalse(handler.is_active_session()) range_begins = [ dt.datetime(2015, 4, 5, 1, 0), dt.datetime(2015, 4, 5, 1, 0), dt.datetime(2015, 4, 5, 1, 0), dt.datetime(2015, 4, 5, 2, 0), dt.datetime(2015, 4, 5, 3, 0) ] range_ends = [ dt.datetime(2015, 4, 5, 1, 3), dt.datetime(2015, 4, 5, 2, 0), dt.datetime(2015, 4, 5, 2, 30), dt.datetime(2015, 4, 5, 2, 30), dt.datetime(2015, 4, 5, 4, 00) ] expected_record = Record('AP Bio', start, end) successful_findings = [False, False, True, True, False] for rb, re, sf in zip(range_begins, range_ends, successful_findings): with self.subTest(rb=rb, re=re, sf=sf): result = list(handler.get_records_between(rb, re)) if sf: self.assertEqual(result[0], expected_record) else: self.assertEqual(result, [])