def test_rename_tag_name_taken(self): tag = Tag(owner=self.test_user_id, name=self.tag_name) self.session.add(tag) tag2 = Tag(owner=self.test_user_id, name=self.tag_name_new) self.session.add(tag2) self.session.commit() with self.assertRaises(IntegrityError): TagWrapper.rename_tag(self.session, self.test_user_id, self.tag_name, self.tag_name_new)
def test_rename_tag_success(self): tag = Tag(owner=self.test_user_id, name=self.tag_name) self.session.add(tag) self.session.commit() TagWrapper.rename_tag(self.session, self.test_user_id, self.tag_name, self.tag_name_new) tag = self.session.query(Tag).filter(Tag.owner == self.test_user_id, Tag.name == self.tag_name_new).first() self.assertIsNotNone(tag) self.assertEqual(tag.name, self.tag_name_new)
def test_rename_tag_tag_not_found(self): # assert that tag isn't present tag = self.session.query(Tag).filter(Tag.owner == self.test_user_id, Tag.name == self.tag_name).first() if tag is not None: self.session.delete(tag) self.session.commit() with self.assertRaises(DBTagNotFound): TagWrapper.rename_tag(self.session, self.test_user_id, self.tag_name, self.tag_name_new) tag = self.session.query(Tag).filter(Tag.owner == self.test_user_id, Tag.name == self.tag_name).first() self.assertIsNone(tag)
def rename(current_name: str, new_name: str, session=None) -> 'Tag': # Check if name already exists try: TagWrapper.get_tag(session, g.user.platformid, new_name) raise CalculatedError(409, f"Tag with name {new_name} already exists.") except DBTagNotFound: pass try: dbtag = TagWrapper.rename_tag(session, g.user.platformid, current_name, new_name) except DBTagNotFound: raise TagNotFound() tag = Tag.create_from_dbtag(dbtag) return tag