예제 #1
0
    def test_tag_type_is_allocated(self):
        tag_type = 'fake_type-%s' % self.id()
        tag_value = 'fake_value-%s' % self.id()
        tag = Tag(tag_type_name=tag_type, tag_value=tag_value)
        tag_uuid = self.api.tag_create(tag)
        tag = self.api.tag_read(id=tag_uuid)

        self.assertEqual(len(tag.get_tag_type_refs()), 1)
예제 #2
0
    def test_tag_type_is_allocated(self):
        type = 'fake_type-%s' % self.id()
        value = 'fake_value-%s' % self.id()
        tag = Tag(tag_type_name=type, tag_value=value)
        tag_uuid = self.api.tag_create(tag)
        tag = self.api.tag_read(id=tag_uuid)

        self.assertEqual(len(tag.get_tag_type_refs()), 1)
예제 #3
0
    def test_associated_tag_type_is_hidden_to_user(self):
        type = 'fake_type-%s' % self.id()
        value = 'fake_value-%s' % self.id()
        tag = Tag(tag_type_name=type, tag_value=value)
        tag_uuid = self.api.tag_create(tag)
        tag = self.api.tag_read(id=tag_uuid)

        tag_type_uuid = tag.get_tag_type_refs()[0]['uuid']
        with mock.patch.object(self._api_server, 'is_admin_request',
                               return_value=True):
            tag_type = self.api.tag_type_read(id=tag_type_uuid)
        self.assertFalse(tag_type.get_id_perms().get_user_visible())
예제 #4
0
    def test_associated_tag_type_is_hidden_to_user(self):
        tag_type = 'fake_type-%s' % self.id()
        tag_value = 'fake_value-%s' % self.id()
        tag = Tag(tag_type_name=tag_type, tag_value=tag_value)
        tag_uuid = self.api.tag_create(tag)
        tag = self.api.tag_read(id=tag_uuid)

        tag_type_uuid = tag.get_tag_type_refs()[0]['uuid']
        with mock.patch.object(self._api_server, 'is_admin_request',
                               return_value=True):
            tag_type = self.api.tag_type_read(id=tag_type_uuid)
        self.assertFalse(tag_type.get_id_perms().get_user_visible())
예제 #5
0
    def test_pre_defined_tag_type_is_not_deleted_even_if_not_use(self):
        value = 'fake_value1-%s' % self.id()
        for type in constants.TagTypeNameToId.keys():
            tag = Tag(tag_type_name=type, tag_value=value)
            tag_uuid = self.api.tag_create(tag)
            tag = self.api.tag_read(id=tag_uuid)

            tag_type_uuid = tag.get_tag_type_refs()[0]['uuid']
            self.api.tag_delete(id=tag_uuid)
            with mock.patch.object(self._api_server, 'is_admin_request',
                                   return_value=True):
                tag_type = self.api.tag_type_read(id=tag_type_uuid)
            self.assertEqual(tag_type_uuid, tag_type.uuid)
예제 #6
0
    def test_associated_tag_type_is_deleted_if_not_used(self):
        type = 'fake_type-%s' % self.id()
        value = 'fake_value-%s' % self.id()
        tag = Tag(tag_type_name=type, tag_value=value)
        tag_uuid = self.api.tag_create(tag)
        tag = self.api.tag_read(id=tag_uuid)

        tag_type_uuid = tag.get_tag_type_refs()[0]['uuid']
        self.api.tag_delete(id=tag_uuid)
        with ExpectedException(exceptions.NoIdError):
            with mock.patch.object(self._api_server, 'is_admin_request',
                                   return_value=True):
                self.api.tag_type_read(id=tag_type_uuid)
예제 #7
0
    def test_associated_tag_type_is_deleted_if_not_used(self):
        tag_type = 'fake_type-%s' % self.id()
        tag_value = 'fake_value-%s' % self.id()
        tag = Tag(tag_type_name=tag_type, tag_value=tag_value)
        tag_uuid = self.api.tag_create(tag)
        tag = self.api.tag_read(id=tag_uuid)

        tag_type_uuid = tag.get_tag_type_refs()[0]['uuid']
        self.api.tag_delete(id=tag_uuid)
        with mock.patch.object(self._api_server, 'is_admin_request',
                               return_value=True):
            self.assertRaises(NoIdError, self.api.tag_type_read,
                              id=tag_type_uuid)
예제 #8
0
    def test_tag_type_reference_cannot_be_removed(self):
        tag_type = 'fake_type-%s' % self.id()
        tag_value = 'fake_value-%s' % self.id()
        tag = Tag(tag_type_name=tag_type, tag_value=tag_value)
        tag_uuid = self.api.tag_create(tag)
        tag = self.api.tag_read(id=tag_uuid)

        tag_type_uuid = tag.get_tag_type_refs()[0]['uuid']
        with mock.patch.object(self._api_server, 'is_admin_request',
                               return_value=True):
            tag_type = self.api.tag_type_read(id=tag_type_uuid)
        tag.del_tag_type(tag_type)
        self.assertRaises(BadRequest, self.api.tag_update, tag)
예제 #9
0
    def test_pre_defined_tag_type_is_not_deleted_even_if_not_use(self):
        tag_value = 'fake_value1-%s' % self.id()
        for tag_type_name in constants.TagTypeNameToId.keys():
            tag = Tag(tag_type_name=tag_type_name, tag_value=tag_value)
            tag_uuid = self.api.tag_create(tag)
            tag = self.api.tag_read(id=tag_uuid)

            tag_type_uuid = tag.get_tag_type_refs()[0]['uuid']
            self.api.tag_delete(id=tag_uuid)
            with mock.patch.object(self._api_server,
                                   'is_admin_request',
                                   return_value=True):
                tag_type = self.api.tag_type_read(id=tag_type_uuid)
            self.assertEqual(tag_type_uuid, tag_type.uuid)
예제 #10
0
    def test_associated_tag_type_is_not_deleted_if_in_use(self):
        type = 'fake_type-%s' % self.id()
        value1 = 'fake_value1-%s' % self.id()
        tag1 = Tag(tag_type_name=type, tag_value=value1)
        tag1_id = self.api.tag_create(tag1)
        tag1 = self.api.tag_read(id=tag1_id)

        value2 = 'fake_value2-%s' % self.id()
        tag2 = Tag(tag_type_name=type, tag_value=value2)
        self.api.tag_create(tag2)

        tag_type_uuid = tag1.get_tag_type_refs()[0]['uuid']
        self.api.tag_delete(id=tag1_id)
        with mock.patch.object(self._api_server, 'is_admin_request',
                               return_value=True):
            tag_type = self.api.tag_type_read(id=tag_type_uuid)
        self.assertEqual(tag_type_uuid, tag_type.uuid)
예제 #11
0
    def test_associated_tag_type_is_not_deleted_if_in_use(self):
        tag_type = 'fake_type-%s' % self.id()
        tag_value1 = 'fake_value1-%s' % self.id()
        tag1 = Tag(tag_type_name=tag_type, tag_value=tag_value1)
        tag1_id = self.api.tag_create(tag1)
        tag1 = self.api.tag_read(id=tag1_id)

        tag_value2 = 'fake_value2-%s' % self.id()
        tag2 = Tag(tag_type_name=tag_type, tag_value=tag_value2)
        self.api.tag_create(tag2)

        tag_type_uuid = tag1.get_tag_type_refs()[0]['uuid']
        self.api.tag_delete(id=tag1_id)
        with mock.patch.object(self._api_server, 'is_admin_request',
                               return_value=True):
            tag_type = self.api.tag_type_read(id=tag_type_uuid)
        self.assertEqual(tag_type_uuid, tag_type.uuid)
예제 #12
0
    def test_pre_defined_tag_type_is_not_deleted_even_if_not_use(self):
        mock_zk = self._api_server._db_conn._zk_db
        tag_value = 'fake_value1-%s' % self.id()
        for tag_type_name in constants.TagTypeNameToId.keys():
            tag = Tag(tag_type_name=tag_type_name, tag_value=tag_value)
            tag_uuid = self.api.tag_create(tag)
            tag = self.api.tag_read(id=tag_uuid)

            tag_type_uuid = tag.get_tag_type_refs()[0]['uuid']
            zk_id = int(tag.tag_id, 0) & 0x0000ffff
            self.assertEqual(
                mock_zk.get_tag_value_from_id(tag.tag_type_name, zk_id),
                tag.get_fq_name_str(),
            )
            self.api.tag_delete(id=tag_uuid)
            with mock.patch.object(self._api_server, 'is_admin_request',
                                   return_value=True):
                tag_type = self.api.tag_type_read(id=tag_type_uuid)
            self.assertEqual(tag_type_uuid, tag_type.uuid)
            self.assertNotEqual(
                mock_zk.get_tag_value_from_id(tag.tag_type_name, zk_id),
                tag.get_fq_name_str(),
            )