def test_remove_relations_with_document(self): context = Context() context.create_document(1, 'python.pdf', 'pdf', '/tmp/python.pdf') context.create_document(2, 'rust.pdf', 'pdf', '/tmp/rust.pdf') context.create_document(3, 'lua.pdf', 'pdf', '/tmp/lua.pdf') context.create_tag(1, 'book') context.create_relation(1, 1) context.create_relation(2, 1) context.create_relation(3, 1) context.destroy_document(1) self.assertEqual(context.count_relations(), 2) context.destroy_document(3) self.assertEqual(context.count_relations(), 1) context.destroy_document(2) self.assertEqual(context.count_relations(), 0)
def test_relation_creation(self): logger = Logger(path=TEST_LOG_PATH) operation = { 'method': 'create_document', 'id': 456, 'name': 'first.txt', 'type': 'txt', 'path': '/tmp/first.txt' } logger.save_operation(operation) operation = {'method': 'create_tag', 'id': 123, 'name': 'python'} logger.save_operation(operation) operation = { 'method': 'create_relation', 'document_id': 456, 'tag_id': 123 } logger.save_operation(operation) context = Context() logger.restore_context(context) self.assertEqual(context.count_documents(), 1) self.assertEqual(context.count_tags(), 1) self.assertEqual(context.count_relations(), 1) self.assertEqual(context.find_document_ids([123]), [456]) self.assertEqual(context.find_tag_ids([456]), [123])
def test_empty_context(self): logger = Logger(path=TEST_LOG_PATH) context = Context() logger.restore_context(context) self.assertEqual(context.count_documents(), 0) self.assertEqual(context.count_tags(), 0) self.assertEqual(context.count_relations(), 0)
def test_multiple_tags_and_documents(self): context = Context() context.create_document(1, 'python.pdf', 'pdf', '/tmp/python.pdf') context.create_document(2, 'tkinter.pdf', 'pdf', '/tmp/tkinter.pdf') context.create_document(3, 'lua.pdf', 'pdf', '/tmp/lua.pdf') context.create_document(4, 'index.py', 'py', '/tmp/index.py') context.create_tag(5, 'book') context.create_tag(6, 'python') context.create_relation(1, 5) context.create_relation(2, 5) context.create_relation(3, 5) context.create_relation(1, 6) context.create_relation(2, 6) context.create_relation(4, 6) self.assertEqual(context.count_relations(), 6) book_ids = context.find_document_ids([5]) self.assertEqual(book_ids, [1, 2, 3]) python_ids = context.find_document_ids([6]) self.assertEqual(python_ids, [1, 2, 4]) python_book_ids = context.find_document_ids([5, 6]) self.assertEqual(python_book_ids, [1, 2]) document_ids = context.find_document_ids([]) self.assertEqual(document_ids, [1, 2, 3, 4]) tag_ids = context.find_tag_ids([1, 2]) self.assertEqual(tag_ids, [5, 6]) tag_ids = context.find_tag_ids([1, 3]) self.assertEqual(tag_ids, [5]) tag_ids = context.find_tag_ids([3, 4]) self.assertEqual(tag_ids, [])
def test_empty_database(self): context = Context() self.assertEqual(context.count_documents(), 0) self.assertEqual(context.count_tags(), 0) self.assertEqual(context.count_relations(), 0)