def test_policy_get_by_short_id(self): policy_ids = ['same-part-unique-part', 'same-part-part-unique'] for pid in policy_ids: data = self.new_policy_data(id=pid) db_api.policy_create(self.ctx, data) # verify creation with set ID policy = db_api.policy_get(self.ctx, pid) self.assertIsNotNone(policy) self.assertEqual(pid, policy.id) # too short -> multiple choices for x in range(len('same-part-')): self.assertRaises(exception.MultipleChoices, db_api.policy_get_by_short_id, self.ctx, policy_ids[0][:x]) # ids are unique policy = db_api.policy_get_by_short_id(self.ctx, policy_ids[0][:11]) self.assertEqual(policy_ids[0], policy.id) policy = db_api.policy_get_by_short_id(self.ctx, policy_ids[1][:11]) self.assertEqual(policy_ids[1], policy.id) # bad ids res = db_api.policy_get_by_short_id(self.ctx, 'non-existent') self.assertIsNone(res)
def test_policy_get_by_short_id_diff_project(self): policy_id = 'same-part-unique-part' data = self.new_policy_data(id=policy_id) db_api.policy_create(self.ctx, data) new_ctx = utils.dummy_context(project='a-different-project') res = db_api.policy_get_by_short_id(new_ctx, policy_id[0][:11]) self.assertIsNone(res) res = db_api.policy_get_by_short_id(new_ctx, policy_id[0][:11], project_safe=False) self.assertIsNotNone(res) self.assertEqual(policy_id, res.id)