def test_tag_addition_with_single_selection(self):
     scope = Scope(database=self._database)
     scope.select_document(7)
     self.assertEqual(scope.get_concept_tags(), [])
     document_only_tags = scope.get_selection_only_tags()
     self.assertEqual(len(document_only_tags), 2)
     _ = scope.create_tag('script')
     _ = scope.create_tag('web')
     selection_only_tags = scope.get_selection_only_tags()
     self.assertEqual(len(selection_only_tags), 4)
     for tag in selection_only_tags:
         self.assertIn(tag.name, ['rust', 'index', 'script', 'web'])
 def test_tag_creation_without_document(self):
     scope = Scope(database=self._database)
     self.assertEqual(scope.get_concept_tags(), [])
     tag = scope.create_tag('n+1')
     scope.add_tag(tag.id)
     self.assertEqual(scope.get_concept_tag_ids(), [tag.id])
     self.assertEqual(set(scope.get_selection_only_tag_ids()),
                      {1, 2, 3, 4, 5, 6})
     self.assertEqual(scope.get_concept_documents(), [])
 def test_tag_creation_with_multiple_documents(self):
     scope = Scope(database=self._database)
     for document_id in [4, 6, 7, 8]:
         scope.select_document(document_id)
     tag = scope.create_tag('source')
     scope.add_tag(tag.id)
     self.assertEqual(set(scope.get_concept_document_ids()), {4, 6, 7, 8})
     self.assertEqual(scope.get_concept_tag_ids(), [tag.id])
     self.assertEqual(set(scope.get_selection_document_ids()), {4, 6, 7, 8})
     self.assertEqual(scope.get_selection_tag_ids(), [tag.id])
     self.assertEqual(scope.get_concept_only_document_ids(), [])
     self.assertEqual(scope.get_selection_only_tag_ids(), [])
 def test_tag_creation_with_single_document(self):
     scope = Scope(database=self._database)
     scope.select_document(4)
     tag = scope.create_tag('template')
     scope.add_tag(tag.id)
     self.assertEqual(scope.get_concept_document_ids(), [4])
     self.assertEqual(scope.get_concept_tag_ids(), [tag.id])
     self.assertEqual(scope.get_selection_document_ids(), [4])
     self.assertEqual(set(scope.get_selection_tag_ids()), {2, 6, tag.id})
     self.assertEqual(scope.get_concept_only_document_ids(), [])
     self.assertEqual(set(scope.get_selection_only_tag_ids()), {2, 6})
     tag_names = {2: 'python', 6: 'index', tag.id: 'template'}
     for tag in scope.get_selection_only_tags():
         self.assertEqual(tag.name, tag_names[tag.id])
 def test_duplicated_tag_creation(self):
     scope = Scope(database=self._database)
     _ = scope.create_tag('unique')
     with self.assertRaises(ValueError):
         _ = scope.create_tag('unique')