Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def test_policy_create_delete(self):
- # create policy alice in PE1
- self.assertEqual(self.pe1.post(
- suffix='policies', json={'name': 'alice'}).status_code, 201)
- # check policy alice in PE1
- self.assertEqual(self.pe1.get('policies/alice').status_code, 200)
- # check policy alice in PE2
- helper.retry_check_function_return_value(
- lambda: self.pe2.get('policies/alice').status_code, 200)
- # create policy bob in PE2
- self.assertEqual(self.pe2.post(
- suffix='policies', json={'name': 'bob'}).status_code, 201)
- # check policy bob in PE2
- self.assertEqual(self.pe2.get('policies/bob').status_code, 200)
- # check policy bob in PE1
- helper.retry_check_function_return_value(
- lambda: self.pe1.get('policies/bob').status_code, 200)
- # check policy listings
- self.assertEqual(len(self.pe1.get('policies').json()['results']), 4)
- self.assertEqual(len(self.pe2.get('policies').json()['results']), 4)
- # delete policy alice in PE2, and check deleted on both PE
- self.assertEqual(self.pe2.delete('policies/alice').status_code, 200)
- self.assertEqual(self.pe2.get('policies/alice').status_code, 404)
- helper.retry_check_function_return_value(
- lambda: self.pe1.get('policies/alice').status_code, 404)
- # delete policy bob in PE2, and check deleted on both PE
- self.assertEqual(self.pe2.delete('policies/bob').status_code, 200)
- self.assertEqual(self.pe2.get('policies/bob').status_code, 404)
- helper.retry_check_function_return_value(
- lambda: self.pe1.get('policies/bob').status_code, 404)
- def test_policy_rule_crud(self):
- try:
- # create policy alice in PE1
- self.assertEqual(self.pe1.post(
- suffix='policies', json={'name': 'alice'}).status_code,
- 201)
- # add rule to PE1
- j = {'rule': 'p(x) :- q(x)', 'name': 'rule1'}
- self.assertEqual(self.pe1.post(
- suffix='policies/alice/rules', json=j).status_code, 201)
- self.assertEqual(
- self.pe1.get('policies/alice/rules').status_code,
- 200)
- self.assertEqual(
- len(self.pe1.get('policies/alice/rules').json()[
- 'results']), 1)
- # retry necessary because of synchronization
- helper.retry_check_function_return_value(
- lambda: len(self.pe2.get('policies/alice/rules').json()[
- 'results']), 1)
- # add rule to PE2
- j = {'rule': 'q(1)', 'name': 'rule2'}
- self.assertEqual(self.pe2.post(
- suffix='policies/alice/rules', json=j).status_code, 201)
- # check 2 rule in each pe
- self.assertEqual(len(
- self.pe2.get('policies/alice/rules').json()['results']), 2)
- self.assertEqual(len(
- self.pe1.get('policies/alice/rules').json()['results']), 2)
- # grab rule IDs
- rules = self.pe2.get('policies/alice/rules').json()['results']
- id1 = next(x['id'] for x in rules if x['name'] == 'rule1')
- id2 = next(x['id'] for x in rules if x['name'] == 'rule2')
- # show rules by id
- self.assertEqual(
- self.pe1.get('policies/alice/rules/%s' % id1).status_code, 200)
- self.assertEqual(
- self.pe2.get('policies/alice/rules/%s' % id1).status_code, 200)
- self.assertEqual(
- self.pe1.get('policies/alice/rules/%s' % id2).status_code, 200)
- self.assertEqual(
- self.pe2.get('policies/alice/rules/%s' % id2).status_code, 200)
- # list tables
- self.assertEqual(len(
- self.pe1.get('policies/alice/tables').json()['results']), 2)
- self.assertEqual(len(
- self.pe2.get('policies/alice/tables').json()['results']), 2)
- # show tables
- self.assertEqual(
- self.pe1.get('policies/alice/tables/p').status_code, 200)
- self.assertEqual(
- self.pe2.get('policies/alice/tables/p').status_code, 200)
- self.assertEqual(
- self.pe1.get('policies/alice/tables/q').status_code, 200)
- self.assertEqual(
- self.pe2.get('policies/alice/tables/q').status_code, 200)
- # delete from PE1 and check both have 1 rule left
- self.assertEqual(self.pe1.delete(
- suffix='policies/alice/rules/%s' % id1).status_code, 200)
- self.assertEqual(
- len(self.pe1.get('policies/alice/rules').json()[
- 'results']), 1)
- self.assertEqual(
- len(self.pe2.get('policies/alice/rules').json()[
- 'results']), 1)
- # delete from PE2 and check both have 0 rules left
- self.assertEqual(self.pe2.delete(
- suffix='policies/alice/rules/%s' % id2).status_code, 200)
- self.assertEqual(
- len(self.pe1.get('policies/alice/rules').json()[
- 'results']), 0)
- self.assertEqual(
- len(self.pe2.get('policies/alice/rules').json()[
- 'results']), 0)
- except Exception:
- LOG.error('PE1 process output:\n%s' % self.read_output_file(self.outfiles[1]))
- LOG.error('PE2 process output:\n%s' % self.read_output_file(self.outfiles[2]))
- raise
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement