Advertisement
Guest User

Untitled

a guest
Sep 26th, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.62 KB | None | 0 0
  1.     def test_policy_create_delete(self):
  2.         # create policy alice in PE1
  3.         self.assertEqual(self.pe1.post(
  4.             suffix='policies', json={'name': 'alice'}).status_code, 201)
  5.         # check policy alice in PE1
  6.         self.assertEqual(self.pe1.get('policies/alice').status_code, 200)
  7.         # check policy alice in PE2
  8.         helper.retry_check_function_return_value(
  9.             lambda: self.pe2.get('policies/alice').status_code, 200)
  10.         # create policy bob in PE2
  11.         self.assertEqual(self.pe2.post(
  12.             suffix='policies', json={'name': 'bob'}).status_code, 201)
  13.         # check policy bob in PE2
  14.         self.assertEqual(self.pe2.get('policies/bob').status_code, 200)
  15.         # check policy bob in PE1
  16.         helper.retry_check_function_return_value(
  17.             lambda: self.pe1.get('policies/bob').status_code, 200)
  18.  
  19.         # check policy listings
  20.         self.assertEqual(len(self.pe1.get('policies').json()['results']), 4)
  21.         self.assertEqual(len(self.pe2.get('policies').json()['results']), 4)
  22.  
  23.         # delete policy alice in PE2, and check deleted on both PE
  24.         self.assertEqual(self.pe2.delete('policies/alice').status_code, 200)
  25.         self.assertEqual(self.pe2.get('policies/alice').status_code, 404)
  26.         helper.retry_check_function_return_value(
  27.             lambda: self.pe1.get('policies/alice').status_code, 404)
  28.  
  29.         # delete policy bob in PE2, and check deleted on both PE
  30.         self.assertEqual(self.pe2.delete('policies/bob').status_code, 200)
  31.         self.assertEqual(self.pe2.get('policies/bob').status_code, 404)
  32.         helper.retry_check_function_return_value(
  33.             lambda: self.pe1.get('policies/bob').status_code, 404)
  34.  
  35.     def test_policy_rule_crud(self):
  36.         try:
  37.             # create policy alice in PE1
  38.             self.assertEqual(self.pe1.post(
  39.                 suffix='policies', json={'name': 'alice'}).status_code,
  40.                              201)
  41.             # add rule to PE1
  42.             j = {'rule': 'p(x) :- q(x)', 'name': 'rule1'}
  43.             self.assertEqual(self.pe1.post(
  44.                 suffix='policies/alice/rules', json=j).status_code, 201)
  45.             self.assertEqual(
  46.                 self.pe1.get('policies/alice/rules').status_code,
  47.                 200)
  48.             self.assertEqual(
  49.                 len(self.pe1.get('policies/alice/rules').json()[
  50.                         'results']), 1)
  51.             # retry necessary because of synchronization
  52.             helper.retry_check_function_return_value(
  53.                 lambda: len(self.pe2.get('policies/alice/rules').json()[
  54.                         'results']), 1)
  55.             # add rule to PE2
  56.             j = {'rule': 'q(1)', 'name': 'rule2'}
  57.             self.assertEqual(self.pe2.post(
  58.                 suffix='policies/alice/rules', json=j).status_code, 201)
  59.             # check 2 rule in each pe
  60.             self.assertEqual(len(
  61.                 self.pe2.get('policies/alice/rules').json()['results']), 2)
  62.             self.assertEqual(len(
  63.                 self.pe1.get('policies/alice/rules').json()['results']), 2)
  64.  
  65.             # grab rule IDs
  66.             rules = self.pe2.get('policies/alice/rules').json()['results']
  67.             id1 = next(x['id'] for x in rules if x['name'] == 'rule1')
  68.             id2 = next(x['id'] for x in rules if x['name'] == 'rule2')
  69.  
  70.             # show rules by id
  71.             self.assertEqual(
  72.                 self.pe1.get('policies/alice/rules/%s' % id1).status_code, 200)
  73.             self.assertEqual(
  74.                 self.pe2.get('policies/alice/rules/%s' % id1).status_code, 200)
  75.             self.assertEqual(
  76.                 self.pe1.get('policies/alice/rules/%s' % id2).status_code, 200)
  77.             self.assertEqual(
  78.                 self.pe2.get('policies/alice/rules/%s' % id2).status_code, 200)
  79.  
  80.             # list tables
  81.             self.assertEqual(len(
  82.                 self.pe1.get('policies/alice/tables').json()['results']), 2)
  83.             self.assertEqual(len(
  84.                 self.pe2.get('policies/alice/tables').json()['results']), 2)
  85.  
  86.             # show tables
  87.             self.assertEqual(
  88.                 self.pe1.get('policies/alice/tables/p').status_code, 200)
  89.             self.assertEqual(
  90.                 self.pe2.get('policies/alice/tables/p').status_code, 200)
  91.             self.assertEqual(
  92.                 self.pe1.get('policies/alice/tables/q').status_code, 200)
  93.             self.assertEqual(
  94.                 self.pe2.get('policies/alice/tables/q').status_code, 200)
  95.  
  96.             # delete from PE1 and check both have 1 rule left
  97.             self.assertEqual(self.pe1.delete(
  98.                 suffix='policies/alice/rules/%s' % id1).status_code, 200)
  99.             self.assertEqual(
  100.                 len(self.pe1.get('policies/alice/rules').json()[
  101.                         'results']), 1)
  102.             self.assertEqual(
  103.                 len(self.pe2.get('policies/alice/rules').json()[
  104.                         'results']), 1)
  105.             # delete from PE2 and check both have 0 rules left
  106.             self.assertEqual(self.pe2.delete(
  107.                 suffix='policies/alice/rules/%s' % id2).status_code, 200)
  108.             self.assertEqual(
  109.                 len(self.pe1.get('policies/alice/rules').json()[
  110.                         'results']), 0)
  111.             self.assertEqual(
  112.                 len(self.pe2.get('policies/alice/rules').json()[
  113.                         'results']), 0)
  114.         except Exception:
  115.             LOG.error('PE1 process output:\n%s' % self.read_output_file(self.outfiles[1]))
  116.             LOG.error('PE2 process output:\n%s' % self.read_output_file(self.outfiles[2]))
  117.             raise
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement