def test_internal_alerts_same_as_last_alerts_are_added_to_history(self): test_alerts = {'alerts': ['hello', 'world']} alerts.AlertsJSON(json=json.dumps(test_alerts), type='alerts').put() self.testapp.post('/internal-alerts', {'content': json.dumps(test_alerts)}) alerts_query = alerts.AlertsJSON.query() self.assertEqual(2, alerts_query.count(limit=3))
def test_lists_internal_alerts_to_internal_users_only(self): test_alert = {'alerts': ['hello', 'world', '1']} alerts.AlertsJSON(json=json.dumps(test_alert), type='internal-alerts').put() # No signed-in user. response = self.testapp.get('/alerts-history') self.assertEqual(response.status_int, 200) self.assertEqual(response.content_type, 'application/json') response_json = json.loads(response.normal_body) self.assertEqual(len(response_json['history']), 0) # Non-internal user. self.testbed.setup_env(USER_EMAIL='*****@*****.**', USER_ID='1', USER_IS_ADMIN='1', overwrite=True) response = self.testapp.get('/alerts-history') self.assertEqual(response.status_int, 200) self.assertEqual(response.content_type, 'application/json') response_json = json.loads(response.normal_body) self.assertEqual(len(response_json['history']), 0) # Internal user. self.testbed.setup_env(USER_EMAIL='*****@*****.**', USER_ID='2', USER_IS_ADMIN='1', overwrite=True) response = self.testapp.get('/alerts-history') self.assertEqual(response.status_int, 200) self.assertEqual(response.content_type, 'application/json') response_json = json.loads(response.normal_body) self.assertEqual(len(response_json['history']), 1)
def test_internal_alerts_can_only_retrieved_by_internal_users(self): test_alert = {'alerts': ['hello', 'world', '1']} internal_alert = alerts.AlertsJSON(json=json.dumps(test_alert), type='internal-alerts') internal_alert_key = internal_alert.put().integer_id() # No signed-in user. response = self.testapp.get('/alerts-history/%s' % internal_alert_key, expect_errors=True) self.assertEqual(response.status_int, 404) self.assertEqual(response.content_type, 'application/json') parsed_json = json.loads(response.normal_body) self.assertNotIn('alerts', parsed_json) # Non-internal user. self.testbed.setup_env(USER_EMAIL='*****@*****.**', USER_ID='1', USER_IS_ADMIN='1', overwrite=True) response = self.testapp.get('/alerts-history/%s' % internal_alert_key, expect_errors=True) self.assertEqual(response.status_int, 404) self.assertEqual(response.content_type, 'application/json') parsed_json = json.loads(response.normal_body) self.assertNotIn('alerts', parsed_json)
def test_alerts_jsons_are_retrieved_from_history(self): test_alert = {'alerts': ['hello', 'world', '1']} alerts.AlertsJSON(json=json.dumps(test_alert), type='alerts').put() response = self.testapp.get('/alerts-history') self.assertEqual(response.status_int, 200) self.assertEqual(response.content_type, 'application/json') parsed_json = json.loads(response.normal_body) self.assertEqual(len(parsed_json['history']), 1) entry_id = parsed_json['history'][0] response = self.testapp.get('/alerts-history/%s' % entry_id) self.assertEqual(response.status_int, 200) self.assertEqual(response.content_type, 'application/json') parsed_json = json.loads(response.normal_body) self.assertEqual(parsed_json['alerts'], test_alert['alerts'])
def test_returned_alerts_from_history_are_paged(self): for i in range(20): test_alert = {'alerts': ['hello', 'world', i]} alerts.AlertsJSON(json=json.dumps(test_alert), type='alerts').put() response = self.testapp.get('/alerts-history?limit=15') self.assertEqual(response.status_int, 200) self.assertEqual(response.content_type, 'application/json') response_json = json.loads(response.normal_body) self.assertEqual(len(response_json['history']), 15) self.assertEqual(response_json['has_more'], True) url = '/alerts-history?limit=15&cursor=%s' % response_json['cursor'] response = self.testapp.get(url) self.assertEqual(response.status_int, 200) self.assertEqual(response.content_type, 'application/json') response_json = json.loads(response.normal_body) self.assertEqual(len(response_json['history']), 5) self.assertEqual(response_json['has_more'], False)