示例#1
0
 def test_throws_when_credentials_are_rejected(self, m: Mocker):
     m.post('/trigger', text=RESPONSE_AUTH_REJECTED, status_code=401)
     with self.assertRaises(piazza.Unauthorized):
         piazza.create_trigger(
             data_inputs={'foo': 'bar'},
             event_type_id='test-event-type-id',
             name='test-name',
             service_id='test-service-id',
         )
示例#2
0
 def test_gracefully_handles_errors(self, m: Mocker):
     m.post('/trigger', text=RESPONSE_ERROR_GENERIC, status_code=500)
     with self.assertRaises(piazza.ServerError):
         piazza.create_trigger(
             data_inputs={'foo': 'bar'},
             event_type_id='test-event-type-id',
             name='test-name',
             service_id='test-service-id',
         )
示例#3
0
 def test_calls_correct_url(self, m: Mocker):
     m.post('/trigger', text=RESPONSE_TRIGGER, status_code=201)
     piazza.create_trigger(
         data_inputs={},
         event_type_id='test-event-type-id',
         name='test-name',
         service_id='test-service-id',
     )
     self.assertEqual('https://test-piazza-host.localdomain/trigger',
                      m.request_history[0].url)
示例#4
0
 def test_throws_when_piazza_is_unreachable(self, _):
     with unittest.mock.patch('requests.post') as mock:
         mock.side_effect = ConnectionError(request=unittest.mock.Mock())
         with self.assertRaises(piazza.Unreachable):
             piazza.create_trigger(
                 data_inputs={'foo': 'bar'},
                 event_type_id='test-event-type-id',
                 name='test-name',
                 service_id='test-service-id',
             )
示例#5
0
 def test_sends_correct_api_key(self, m: Mocker):
     m.post('/trigger', text=RESPONSE_TRIGGER, status_code=201)
     piazza.create_trigger(
         data_inputs={},
         event_type_id='test-event-type-id',
         name='test-name',
         service_id='test-service-id',
     )
     self.assertEqual(
         'Basic YWFhYWFhYWEtYmJiYi1jY2NjLWRkZGQtZWVlZWVlZWVlZWVlOg==',
         m.request_history[0].headers['Authorization'])
示例#6
0
 def test_throws_when_data_is_missing(self, m: Mocker):
     mangled_response = json.loads(RESPONSE_TRIGGER)
     mangled_response.pop('data')
     m.post('/trigger', json=mangled_response, status_code=201)
     with self.assertRaisesRegex(piazza.InvalidResponse, 'missing `data`'):
         piazza.create_trigger(
             data_inputs={'foo': 'bar'},
             event_type_id='test-event-type-id',
             name='test-name',
             service_id='test-service-id',
         )
示例#7
0
 def test_returns_trigger_id(self, m: Mocker):
     m.post('/trigger', text=RESPONSE_TRIGGER, status_code=201)
     trigger_id = piazza.create_trigger(
         data_inputs={'foo': 'bar'},
         event_type_id='test-event-type-id',
         name='test-name',
         service_id='test-service-id',
     )
     self.assertEqual('test-trigger-id', trigger_id)
示例#8
0
 def test_sends_correct_payload(self, m: Mocker):
     m.post('/trigger', text=RESPONSE_TRIGGER, status_code=201)
     piazza.create_trigger(
         data_inputs={'lorem': 'ipsum dolor'},
         event_type_id='test-event-type-id',
         name='test-name',
         service_id='test-service-id',
     )
     self.assertEqual(
         {
             'name': 'test-name',
             'eventTypeId': 'test-event-type-id',
             'condition': {
                 'query': {
                     'query': {
                         'match_all': {}
                     }
                 },
             },
             'job': {
                 'jobType': {
                     'type': 'execute-service',
                     'data': {
                         'serviceId':
                         'test-service-id',
                         'dataInputs': {
                             'lorem': 'ipsum dolor'
                         },
                         'dataOutput': [{
                             'mimeType': 'text/plain',
                             'type': 'text'
                         }],
                     },
                 },
             },
             'enabled': True,
         }, m.request_history[0].json())