Example #1
0
 def test_document_path_and_type_update(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': 'update_document',
         'id': 456,
         'path': '/tmp/new.rst',
         'type': 'rst'
     }
     logger.save_operation(operation)
     context = Context()
     logger.restore_context(context)
     self.assertEqual(context.count_documents(), 1)
     document = context.get_document(456)
     self.assertEqual(document.id, 456)
     self.assertEqual(document.name, 'first.txt')
     self.assertEqual(document.type, 'rst')
     self.assertEqual(document.path, '/tmp/new.rst')
Example #2
0
 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)
Example #3
0
 def test_tag_creation_and_remove(self):
     logger = Logger(path=TEST_LOG_PATH)
     operation = {'method': 'create_tag', 'id': 123, 'name': 'python'}
     logger.save_operation(operation)
     operation = {'method': 'destroy_tag', 'id': 123}
     logger.save_operation(operation)
     context = Context()
     logger.restore_context(context)
     self.assertEqual(context.count_tags(), 0)
Example #4
0
 def test_tag_creation(self):
     logger = Logger(path=TEST_LOG_PATH)
     operation = {'method': 'create_tag', 'id': 123, 'name': 'python'}
     logger.save_operation(operation)
     context = Context()
     logger.restore_context(context)
     self.assertEqual(context.count_tags(), 1)
     tag = context.get_tag(123)
     self.assertEqual(tag.id, 123)
     self.assertEqual(tag.name, 'python')
Example #5
0
 def test_relation_creation_and_remove(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)
     operation = {
         'method': 'destroy_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(), 0)
     self.assertEqual(context.find_document_ids([123]), [])
     self.assertEqual(context.find_document_ids([]), [456])
     self.assertEqual(context.find_tag_ids([456]), [])
     self.assertEqual(context.find_tag_ids([]), [123])
Example #6
0
 def test_find_id_of_missing_tag(self):
     context = Context()
     context.create_tag(1, 'python')
     context.create_tag(2, 'rust')
     context.create_tag(3, 'lua')
     with self.assertRaises(ValueError):
         _ = context.find_tag_id('java')
Example #7
0
 def test_reuse_tag_identifier(self):
     context = Context()
     context.create_tag(1, 'python')
     context.destroy_tag(1)
     context.create_tag(1, 'rust')
     tag = context.get_tag(1)
     self.assertEqual(tag.id, 1)
     self.assertEqual(tag.name, 'rust')
Example #8
0
 def test_reuse_document_identifier(self):
     context = Context()
     context.create_document(1, 'first.txt', 'txt', '/tmp/first.txt')
     context.destroy_document(1)
     context.create_document(1, 'other.dat', 'data', '/tmp/other.dat')
     document = context.get_document(1)
     self.assertEqual(document.id, 1)
     self.assertEqual(document.name, 'other.dat')
     self.assertEqual(document.type, 'data')
     self.assertEqual(document.path, '/tmp/other.dat')
Example #9
0
 def test_document_creation_and_remove(self):
     logger = Logger(path=TEST_LOG_PATH)
     operation = {
         'method': 'create_document',
         'id': 1,
         'name': 'first.txt',
         'type': 'txt',
         'path': '/tmp/first.txt'
     }
     logger.save_operation(operation)
     operation = {'method': 'destroy_document', 'id': 1}
     logger.save_operation(operation)
     context = Context()
     logger.restore_context(context)
     self.assertEqual(context.count_documents(), 0)
Example #10
0
 def test_update_tag(self):
     context = Context()
     context.create_tag(1, 'python')
     context.update_tag(1, 'lua')
     tag = context.get_tag(1)
     self.assertEqual(tag.id, 1)
     self.assertEqual(tag.name, 'lua')
Example #11
0
 def test_update_document_path(self):
     context = Context()
     context.create_document(1, 'first.txt', 'txt', '/tmp/first.txt')
     context.update_document(1, path='/tmp/here/first.txt')
     document = context.get_document(1)
     self.assertEqual(document.id, 1)
     self.assertEqual(document.name, 'first.txt')
     self.assertEqual(document.type, 'txt')
     self.assertEqual(document.path, '/tmp/here/first.txt')
Example #12
0
 def test_update_document(self):
     context = Context()
     context.create_document(1, 'first.txt', 'txt', '/tmp/first.txt')
     context.update_document(1, 'second.csv', 'csv', '/tmp/second.csv')
     document = context.get_document(1)
     self.assertEqual(document.id, 1)
     self.assertEqual(document.name, 'second.csv')
     self.assertEqual(document.type, 'csv')
     self.assertEqual(document.path, '/tmp/second.csv')
Example #13
0
 def test_find_all_tags(self):
     context = Context()
     context.create_tag(1, 'python')
     context.create_tag(2, 'rust')
     tags = context.find_tags([])
     self.assertEqual(len(tags), 2)
     self.assertEqual(tags[0].id, 1)
     self.assertEqual(tags[0].name, 'python')
     self.assertEqual(tags[1].id, 2)
     self.assertEqual(tags[1].name, 'rust')
Example #14
0
 def test_tag_creation(self):
     context = Context()
     context.create_tag(1, 'python')
     self.assertEqual(context.count_tags(), 1)
     tag = context.get_tag(1)
     self.assertEqual(tag.id, 1)
     self.assertEqual(tag.name, 'python')
Example #15
0
 def test_document_creation(self):
     context = Context()
     context.create_document(1, 'first.txt', 'txt', '/tmp/first.txt')
     self.assertEqual(context.count_documents(), 1)
     document = context.get_document(1)
     self.assertEqual(document.id, 1)
     self.assertEqual(document.name, 'first.txt')
     self.assertEqual(document.type, 'txt')
     self.assertEqual(document.path, '/tmp/first.txt')
Example #16
0
 def test_find_all_documents(self):
     context = Context()
     context.create_document(1, 'first.txt', 'txt', '/tmp/first.txt')
     context.create_document(2, 'second.txt', 'txt', '/tmp/second.txt')
     documents = context.find_documents([])
     self.assertEqual(len(documents), 2)
     self.assertEqual(documents[0].id, 1)
     self.assertEqual(documents[0].name, 'first.txt')
     self.assertEqual(documents[0].type, 'txt')
     self.assertEqual(documents[0].path, '/tmp/first.txt')
     self.assertEqual(documents[1].id, 2)
     self.assertEqual(documents[1].name, 'second.txt')
     self.assertEqual(documents[1].type, 'txt')
     self.assertEqual(documents[1].path, '/tmp/second.txt')
Example #17
0
 def test_find_all_documents_from_empty_database(self):
     context = Context()
     documents = context.find_documents([])
     self.assertEqual(documents, [])
Example #18
0
 def test_create_relations(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)
     document_ids = context.find_document_ids([1])
     self.assertEqual(document_ids, [1, 2, 3])
     self.assertEqual(context.find_tag_ids([1]), [1])
     self.assertEqual(context.find_tag_ids([2]), [1])
     self.assertEqual(context.find_tag_ids([3]), [1])
Example #19
0
 def test_missing_document(self):
     context = Context()
     context.create_document(1, 'first.txt', 'txt', '/tmp/first.txt')
     with self.assertRaises(ValueError):
         _ = context.get_document(2)
Example #20
0
 def test_update_missing_document(self):
     context = Context()
     context.create_document(1, 'first.txt', 'txt', '/tmp/first.txt')
     with self.assertRaises(ValueError):
         context.update_document(2, path='/tmp/nowhere.txt', type='missing')
Example #21
0
 def test_tag_counting(self):
     context = Context()
     self.assertEqual(context.count_tags(), 0)
     context.create_tag(2, 'rust')
     self.assertEqual(context.count_tags(), 1)
     context.create_tag(1, 'python')
     self.assertEqual(context.count_tags(), 2)
     context.create_tag(3, 'lua')
     self.assertEqual(context.count_tags(), 3)
     context.destroy_tag(2)
     self.assertEqual(context.count_tags(), 2)
     context.destroy_tag(3)
     self.assertEqual(context.count_tags(), 1)
     context.destroy_tag(1)
     self.assertEqual(context.count_tags(), 0)
Example #22
0
 def test_create_relation_with_invalid_tag(self):
     context = Context()
     context.create_document(1, 'python.pdf', 'pdf', '/tmp/python.pdf')
     with self.assertRaises(ValueError):
         context.create_relation(1, 1)
Example #23
0
 def test_create_relation_with_invalid_document(self):
     context = Context()
     context.create_tag(1, 'book')
     with self.assertRaises(ValueError):
         context.create_relation(1, 1)
Example #24
0
 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)
Example #25
0
 def test_find_tag_id(self):
     context = Context()
     context.create_tag(1, 'python')
     context.create_tag(2, 'rust')
     context.create_tag(3, 'lua')
     self.assertEqual(context.find_tag_id('rust'), 2)
     self.assertEqual(context.find_tag_id('lua'), 3)
     self.assertEqual(context.find_tag_id('python'), 1)
Example #26
0
 def test_invalid_document_creation(self):
     context = Context()
     context.create_document(1, 'first.txt', 'txt', '/tmp/first.txt')
     with self.assertRaises(ValueError):
         context.create_document(1, 'second.txt', 'txt', '/tmp/second.txt')
Example #27
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, [])
Example #28
0
 def test_remove_relations_with_tag(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_tag(1)
     self.assertEqual(context.count_relations(), 0)
Example #29
0
 def test_remove_missing_relation(self):
     context = Context()
     context.create_tag(1, 'book')
     context.create_document(1, 'python.pdf', 'pdf', '/tmp/python.pdf')
     with self.assertRaises(ValueError):
         context.destroy_relation(1, 1)
Example #30
0
 def test_unique_tag_name_on_update(self):
     context = Context()
     context.create_tag(1, 'python')
     context.create_tag(2, 'rust')
     with self.assertRaises(ValueError):
         context.update_tag(2, 'python')