Esempio n. 1
0
 def test_probability_distribution_multiple_groups(self, random_call):
   self.load_notifications_mock.return_value = [
     {
       "id": "a",
       "variants": [
         {
           "sample": 0.25,
           "title.en-GB": "1"
         },
         {
           "sample": 0.25,
           "title.en-GB": "2"
         }
       ]
     },
     {
       "id": "b",
       "variants": [
         {
           "sample": 0.25,
           "title.en-GB": "1"
         },
         {
           "sample": 0.25,
           "title.en-GB": "2"
         }
       ]
     }
   ]
   random_call.return_value = 0
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "a")
   self.assertEqual(result["notifications"][0]["title.en-GB"], "1")
   self.assertRegexpMatches(result["version"], r"-a/1-b/0")
   random_call.return_value = 0.251
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "a")
   self.assertEqual(result["notifications"][0]["title.en-GB"], "2")
   self.assertRegexpMatches(result["version"], r"-a/2-b/0")
   random_call.return_value = 0.51
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "b")
   self.assertEqual(result["notifications"][0]["title.en-GB"], "1")
   self.assertRegexpMatches(result["version"], r"-a/0-b/1")
   random_call.return_value = 0.751
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "b")
   self.assertEqual(result["notifications"][0]["title.en-GB"], "2")
   self.assertRegexpMatches(result["version"], r"-a/0-b/2")
Esempio n. 2
0
 def test_invalid_notification_not_returned(self):
     self.load_notifications_mock.return_value = [{
         'id': '1',
         'title': {
             'en-US': ''
         },
         'message': {
             'en-US': ''
         }
     }, {
         'id': '2',
         'title': {
             'en-US': ''
         },
         'message': {}
     }, {
         'id': '3',
         'title': {},
         'message': {
             'en-US': ''
         }
     }, {
         'id': '4',
         'title': {}
     }, {
         'id': '5',
         'message': {}
     }, {
         'id': '6'
     }]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], '1')
Esempio n. 3
0
 def test_inactive_notifications_not_returned(self):
     self.load_notifications_mock.return_value = [{
         'id': 'a',
         'title': {
             'en-US': ''
         },
         'message': {
             'en-US': ''
         },
         'inactive': True
     }, {
         'id': 'b',
         'title': {
             'en-US': ''
         },
         'message': {
             'en-US': ''
         },
         'inactive': False
     }, {
         'id': 'c',
         'title': {
             'en-US': ''
         },
         'message': {
             'en-US': ''
         }
     }]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 2)
     self.assertEqual(result['notifications'][0]['id'], 'b')
     self.assertEqual(result['notifications'][1]['id'], 'c')
Esempio n. 4
0
 def test_in_group(self):
     self.load_notifications_mock.return_value = [{
         'id': '1',
         'title': {
             'en-US': ''
         },
         'message': {
             'en-US': ''
         }
     }, {
         'id':
         'a',
         'variants': [{
             'title': {
                 'en-US': ''
             },
             'message': {
                 'en-US': ''
             }
         }]
     }]
     result = json.loads(
         notification.notification(
             {'QUERY_STRING': 'lastVersion=197001010000-a/1'},
             lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'a')
     self.assertRegexpMatches(result['version'], r'-a/1')
Esempio n. 5
0
 def test_leaves_group_when_notification_absent(self):
     self.load_notifications_mock.return_value = []
     result = json.loads(notification.notification({
         'QUERY_STRING': 'lastVersion=197001010000-a/0-b/1',
     }, lambda *args: None))
     self.assertEqual(len(result['notifications']), 0)
     self.assertRegexpMatches(result['version'], r'[^-]*')
Esempio n. 6
0
 def test_leaves_group_when_notification_absent(self):
   self.load_notifications_mock.return_value = []
   result = json.loads(notification.notification({
     "QUERY_STRING": "lastVersion=197001010000-a/0-b/1"
   }, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 0)
   self.assertRegexpMatches(result["version"], r"[^-]*")
Esempio n. 7
0
 def test_leaves_group_when_notification_absent(self):
     self.load_notifications_mock.return_value = []
     result = json.loads(notification.notification({
         'QUERY_STRING': 'lastVersion=197001010000-a/0-b/1'
     }, lambda *args: None))
     self.assertEqual(len(result['notifications']), 0)
     self.assertRegexpMatches(result['version'], r'[^-]*')
Esempio n. 8
0
 def test_in_group(self):
     self.load_notifications_mock.return_value = [{
         "id": "1",
         "title": {
             "en-US": ""
         },
         "message": {
             "en-US": ""
         }
     }, {
         "id":
         "a",
         "variants": [{
             "title": {
                 "en-US": ""
             },
             "message": {
                 "en-US": ""
             }
         }]
     }]
     result = json.loads(
         notification.notification(
             {"QUERY_STRING": "lastVersion=197001010000-a/1"},
             lambda *args: None))
     self.assertEqual(len(result["notifications"]), 1)
     self.assertEqual(result["notifications"][0]["id"], "a")
     self.assertRegexpMatches(result["version"], r"-a/1")
Esempio n. 9
0
 def test_inactive_notifications_not_returned(self):
     self.load_notifications_mock.return_value = [{
         "id": "a",
         "title": {
             "en-US": ""
         },
         "message": {
             "en-US": ""
         },
         "inactive": True
     }, {
         "id": "b",
         "title": {
             "en-US": ""
         },
         "message": {
             "en-US": ""
         },
         "inactive": False
     }, {
         "id": "c",
         "title": {
             "en-US": ""
         },
         "message": {
             "en-US": ""
         }
     }]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result["notifications"]), 2)
     self.assertEqual(result["notifications"][0]["id"], "b")
     self.assertEqual(result["notifications"][1]["id"], "c")
Esempio n. 10
0
 def test_invalid_notification_not_returned(self):
     self.load_notifications_mock.return_value = [{
         "id": "1",
         "title": {
             "en-US": ""
         },
         "message": {
             "en-US": ""
         }
     }, {
         "id": "2",
         "title": {
             "en-US": ""
         },
         "message": {}
     }, {
         "id": "3",
         "title": {},
         "message": {
             "en-US": ""
         }
     }, {
         "id": "4",
         "title": {}
     }, {
         "id": "5",
         "message": {}
     }, {
         "id": "6"
     }]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result["notifications"]), 1)
     self.assertEqual(result["notifications"][0]["id"], "1")
Esempio n. 11
0
 def test_notification_variant_merged(self):
     self.load_notifications_mock.return_value = [{
         'id':
         'a',
         'title': {
             'en-US': 'default'
         },
         'message': {
             'en-US': 'default'
         },
         'variants': [{
             'sample': 1,
             'message': {
                 'en-US': 'variant'
             }
         }]
     }]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'a')
     self.assertEqual(result['notifications'][0]['title']['en-US'],
                      'default')
     self.assertEqual(result['notifications'][0]['message']['en-US'],
                      'variant')
     self.assertFalse('variants' in result['notifications'][0])
     self.assertFalse('sample' in result['notifications'][0])
Esempio n. 12
0
 def test_notification_variant_merged(self):
     self.load_notifications_mock.return_value = [{
         "id":
         "a",
         "title": {
             "en-US": "default"
         },
         "message": {
             "en-US": "default"
         },
         "variants": [{
             "sample": 1,
             "message": {
                 "en-US": "variant"
             }
         }]
     }]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result["notifications"]), 1)
     self.assertEqual(result["notifications"][0]["id"], "a")
     self.assertEqual(result["notifications"][0]["title"]["en-US"],
                      "default")
     self.assertEqual(result["notifications"][0]["message"]["en-US"],
                      "variant")
     self.assertFalse("variants" in result["notifications"][0])
     self.assertFalse("sample" in result["notifications"][0])
Esempio n. 13
0
 def test_inactive_notification_variant_not_returned(self):
   self.load_notifications_mock.return_value = [
     {"id": "a", "inactive": True}
   ]
   result = json.loads(notification.notification({
     "QUERY_STRING": "lastVersion=197001010000-a/1"
   }, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 0)
Esempio n. 14
0
 def test_no_group(self):
     self.load_notifications_mock.return_value = [
         {'id': '1', 'title': {'en-US': ''}, 'message': {'en-US': ''}}
     ]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], '1')
     self.assertFalse('-' in result['version'])
Esempio n. 15
0
 def test_inactive_notification_variant_not_returned(self):
     self.load_notifications_mock.return_value = [
         {'id': 'a', 'inactive': True}
     ]
     result = json.loads(notification.notification({
         'QUERY_STRING': 'lastVersion=197001010000-a/1'
     }, lambda *args: None))
     self.assertEqual(len(result['notifications']), 0)
Esempio n. 16
0
 def test_no_group(self):
   self.load_notifications_mock.return_value = [
     {"id": "1", "title": {"en-US": ""}, "message": {"en-US": ""}}
   ]
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "1")
   self.assertFalse("-" in result["version"])
Esempio n. 17
0
 def test_stays_in_group_when_notification_present(self):
     self.load_notifications_mock.return_value = [{'id': 'a'}]
     result = json.loads(
         notification.notification(
             {'QUERY_STRING': 'lastVersion=197001010000-a/0-b/1'},
             lambda *args: None))
     self.assertEqual(len(result['notifications']), 0)
     self.assertRegexpMatches(result['version'], r'-a/0')
Esempio n. 18
0
 def test_inactive_notification_variant_not_returned(self):
     self.load_notifications_mock.return_value = [
         {'id': 'a', 'inactive': True},
     ]
     result = json.loads(notification.notification({
         'QUERY_STRING': 'lastVersion=197001010000-a/1',
     }, lambda *args: None))
     self.assertEqual(len(result['notifications']), 0)
Esempio n. 19
0
 def test_no_group(self):
     self.load_notifications_mock.return_value = [
         {'id': '1', 'title': {'en-US': ''}, 'message': {'en-US': ''}},
     ]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], '1')
     self.assertFalse('-' in result['version'])
Esempio n. 20
0
 def test_invalid_last_version(self):
     self.load_notifications_mock.return_value = []
     notification.notification({'QUERY_STRING': 'lastVersion='},
                               lambda *args: None)
     notification.notification({'QUERY_STRING': 'lastVersion=-'},
                               lambda *args: None)
     notification.notification({'QUERY_STRING': 'lastVersion=-/'},
                               lambda *args: None)
     notification.notification({'QUERY_STRING': 'lastVersion=-//'},
                               lambda *args: None)
Esempio n. 21
0
 def test_invalid_last_version(self):
     self.load_notifications_mock.return_value = []
     notification.notification({'QUERY_STRING': 'lastVersion='},
                               lambda *args: None)
     notification.notification({'QUERY_STRING': 'lastVersion=-'},
                               lambda *args: None)
     notification.notification({'QUERY_STRING': 'lastVersion=-/'},
                               lambda *args: None)
     notification.notification({'QUERY_STRING': 'lastVersion=-//'},
                               lambda *args: None)
Esempio n. 22
0
 def test_invalid_last_version(self):
   self.load_notifications_mock.return_value = []
   notification.notification({"QUERY_STRING": "lastVersion="},
                             lambda *args: None)
   notification.notification({"QUERY_STRING": "lastVersion=-"},
                             lambda *args: None)
   notification.notification({"QUERY_STRING": "lastVersion=-/"},
                             lambda *args: None)
   notification.notification({"QUERY_STRING": "lastVersion=-//"},
                             lambda *args: None)
Esempio n. 23
0
 def test_invalid_last_version(self):
   self.load_notifications_mock.return_value = []
   notification.notification({"QUERY_STRING": "lastVersion="},
                             lambda *args: None)
   notification.notification({"QUERY_STRING": "lastVersion=-"},
                             lambda *args: None)
   notification.notification({"QUERY_STRING": "lastVersion=-/"},
                             lambda *args: None)
   notification.notification({"QUERY_STRING": "lastVersion=-//"},
                             lambda *args: None)
Esempio n. 24
0
 def test_version_header_present(self):
   self.load_notifications_mock.return_value = [{"id": "1"}]
   response_header_map = {}
   def start_response(status, response_headers):
     for name, value in response_headers:
       response_header_map[name] = value
   result = json.loads(notification.notification({}, start_response))
   self.assertEqual(result["version"],
                    response_header_map["ABP-Notification-Version"])
Esempio n. 25
0
 def test_stays_in_group_when_notification_inactive(self):
   self.load_notifications_mock.return_value = [
     {"id": "a", "inactive": True}
   ]
   result = json.loads(notification.notification({
     "QUERY_STRING": "lastVersion=197001010000-a/0-b/1"
   }, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 0)
   self.assertRegexpMatches(result["version"], r"-a/0")
Esempio n. 26
0
 def test_stays_in_group_when_notification_inactive(self):
     self.load_notifications_mock.return_value = [
         {'id': 'a', 'inactive': True}
     ]
     result = json.loads(notification.notification({
         'QUERY_STRING': 'lastVersion=197001010000-a/0-b/1'
     }, lambda *args: None))
     self.assertEqual(len(result['notifications']), 0)
     self.assertRegexpMatches(result['version'], r'-a/0')
Esempio n. 27
0
 def test_no_variant_no_notifications(self):
   self.load_notifications_mock.return_value = [
     {
       "id": "a",
       "variants": [{"sample": 0}]
     }
   ]
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 0)
Esempio n. 28
0
 def test_no_variant_no_notifications(self):
     self.load_notifications_mock.return_value = [{
         'id':
         'a',
         'variants': [{
             'sample': 0
         }]
     }]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 0)
Esempio n. 29
0
 def test_inactive_notifications_not_returned(self):
     self.load_notifications_mock.return_value = [
         {'id': 'a', 'title': {'en-US': ''}, 'message': {'en-US': ''}, 'inactive': True},
         {'id': 'b', 'title': {'en-US': ''}, 'message': {'en-US': ''}, 'inactive': False},
         {'id': 'c', 'title': {'en-US': ''}, 'message': {'en-US': ''}}
     ]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 2)
     self.assertEqual(result['notifications'][0]['id'], 'b')
     self.assertEqual(result['notifications'][1]['id'], 'c')
Esempio n. 30
0
 def test_no_variant_no_notifications(self):
     self.load_notifications_mock.return_value = [{
         "id":
         "a",
         "variants": [{
             "sample": 0
         }]
     }]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result["notifications"]), 0)
Esempio n. 31
0
 def test_version_header_present(self):
   self.load_notifications_mock.return_value = [
     {"id": "1", "title": {"en-US": ""}, "message": {"en-US": ""}}
   ]
   response_header_map = {}
   def start_response(status, response_headers):
     for name, value in response_headers:
       response_header_map[name] = value
   result = json.loads(notification.notification({}, start_response))
   self.assertEqual(result["version"],
                    response_header_map["ABP-Notification-Version"])
Esempio n. 32
0
 def test_probability_distribution_multiple_groups(self, random_call):
   self.load_notifications_mock.return_value = [
     {
       "id": "a",
       "variants": [
         {"sample": 0.25, "title": {"en-US": "1"}, "message": {"en-US": ""}},
         {"sample": 0.25, "title": {"en-US": "2"}, "message": {"en-US": ""}}
       ]
     },
     {
       "id": "b",
       "variants": [
         {"sample": 0.25, "title": {"en-US": "1"}, "message": {"en-US": ""}},
         {"sample": 0.25, "title": {"en-US": "2"}, "message": {"en-US": ""}}
       ]
     }
   ]
   random_call.return_value = 0
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "a")
   self.assertEqual(result["notifications"][0]["title"]["en-US"], "1")
   self.assertRegexpMatches(result["version"], r"-a/1-b/0")
   random_call.return_value = 0.251
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "a")
   self.assertEqual(result["notifications"][0]["title"]["en-US"], "2")
   self.assertRegexpMatches(result["version"], r"-a/2-b/0")
   random_call.return_value = 0.51
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "b")
   self.assertEqual(result["notifications"][0]["title"]["en-US"], "1")
   self.assertRegexpMatches(result["version"], r"-a/0-b/1")
   random_call.return_value = 0.751
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "b")
   self.assertEqual(result["notifications"][0]["title"]["en-US"], "2")
   self.assertRegexpMatches(result["version"], r"-a/0-b/2")
Esempio n. 33
0
 def test_probability_distribution_multiple_groups(self, random_call):
     self.load_notifications_mock.return_value = [
         {
             'id': 'a',
             'variants': [
                 {'sample': 0.25, 'title': {'en-US': '1'}, 'message': {'en-US': ''}},
                 {'sample': 0.25, 'title': {'en-US': '2'}, 'message': {'en-US': ''}},
             ],
         },
         {
             'id': 'b',
             'variants': [
                 {'sample': 0.25, 'title': {'en-US': '1'}, 'message': {'en-US': ''}},
                 {'sample': 0.25, 'title': {'en-US': '2'}, 'message': {'en-US': ''}},
             ],
         },
     ]
     random_call.return_value = 0
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'a')
     self.assertEqual(result['notifications'][0]['title']['en-US'], '1')
     self.assertRegexpMatches(result['version'], r'-a/1-b/0')
     random_call.return_value = 0.251
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'a')
     self.assertEqual(result['notifications'][0]['title']['en-US'], '2')
     self.assertRegexpMatches(result['version'], r'-a/2-b/0')
     random_call.return_value = 0.51
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'b')
     self.assertEqual(result['notifications'][0]['title']['en-US'], '1')
     self.assertRegexpMatches(result['version'], r'-a/0-b/1')
     random_call.return_value = 0.751
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'b')
     self.assertEqual(result['notifications'][0]['title']['en-US'], '2')
     self.assertRegexpMatches(result['version'], r'-a/0-b/2')
Esempio n. 34
0
 def test_probability_distribution_multiple_groups(self, random_call):
     self.load_notifications_mock.return_value = [
         {
             'id': 'a',
             'variants': [
                 {'sample': 0.25, 'title': {'en-US': '1'}, 'message': {'en-US': ''}},
                 {'sample': 0.25, 'title': {'en-US': '2'}, 'message': {'en-US': ''}}
             ]
         },
         {
             'id': 'b',
             'variants': [
                 {'sample': 0.25, 'title': {'en-US': '1'}, 'message': {'en-US': ''}},
                 {'sample': 0.25, 'title': {'en-US': '2'}, 'message': {'en-US': ''}}
             ]
         }
     ]
     random_call.return_value = 0
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'a')
     self.assertEqual(result['notifications'][0]['title']['en-US'], '1')
     self.assertRegexpMatches(result['version'], r'-a/1-b/0')
     random_call.return_value = 0.251
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'a')
     self.assertEqual(result['notifications'][0]['title']['en-US'], '2')
     self.assertRegexpMatches(result['version'], r'-a/2-b/0')
     random_call.return_value = 0.51
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'b')
     self.assertEqual(result['notifications'][0]['title']['en-US'], '1')
     self.assertRegexpMatches(result['version'], r'-a/0-b/1')
     random_call.return_value = 0.751
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'b')
     self.assertEqual(result['notifications'][0]['title']['en-US'], '2')
     self.assertRegexpMatches(result['version'], r'-a/0-b/2')
Esempio n. 35
0
    def test_version_header_present(self):
        self.load_notifications_mock.return_value = [
            {'id': '1', 'title': {'en-US': ''}, 'message': {'en-US': ''}},
        ]
        response_header_map = {}

        def start_response(status, response_headers):
            for name, value in response_headers:
                response_header_map[name] = value
        result = json.loads(notification.notification({}, start_response))
        self.assertEqual(result['version'],
                         response_header_map['ABP-Notification-Version'])
Esempio n. 36
0
 def test_invalid_notification_not_returned(self):
     self.load_notifications_mock.return_value = [
         {'id': '1', 'title': {'en-US': ''}, 'message': {'en-US': ''}},
         {'id': '2', 'title': {'en-US': ''}, 'message': {}},
         {'id': '3', 'title': {}, 'message': {'en-US': ''}},
         {'id': '4', 'title': {}},
         {'id': '5', 'message': {}},
         {'id': '6'}
     ]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], '1')
Esempio n. 37
0
    def test_version_header_present(self):
        self.load_notifications_mock.return_value = [
            {'id': '1', 'title': {'en-US': ''}, 'message': {'en-US': ''}}
        ]
        response_header_map = {}

        def start_response(status, response_headers):
            for name, value in response_headers:
                response_header_map[name] = value
        result = json.loads(notification.notification({}, start_response))
        self.assertEqual(result['version'],
                         response_header_map['ABP-Notification-Version'])
Esempio n. 38
0
 def test_in_group(self):
     self.load_notifications_mock.return_value = [
         {'id': '1', 'title': {'en-US': ''}, 'message': {'en-US': ''}},
         {'id': 'a', 'variants': [
             {'title': {'en-US': ''}, 'message': {'en-US': ''}}
         ]}
     ]
     result = json.loads(notification.notification({
         'QUERY_STRING': 'lastVersion=197001010000-a/1'
     }, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'a')
     self.assertRegexpMatches(result['version'], r'-a/1')
Esempio n. 39
0
 def test_stays_in_group_when_notification_inactive_assign_new_group(self):
     # See: https://issues.adblockplus.org/ticket/5827
     self.load_notifications_mock.return_value = [
         {'id': '1', 'inactive': True},
         {'id': '2', 'variants': [
             {'sample': 1, 'title': {'en-US': '2.1'}, 'message': {'en-US': '2.1'}},
         ]},
     ]
     result = json.loads(notification.notification({
         'QUERY_STRING': 'lastVersion=197001010000-1/0',
     }, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertRegexpMatches(result['version'], r'-1/0-2/1')
Esempio n. 40
0
 def test_in_group(self):
   self.load_notifications_mock.return_value = [
     {"id": "1"},
     {
       "id": "a",
       "variants": [{}]
     }
   ]
   result = json.loads(notification.notification({
     "QUERY_STRING": "lastVersion=197001010000-a/1"
   }, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "a")
   self.assertRegexpMatches(result["version"], r"-a/1")
Esempio n. 41
0
 def test_notification_variant_merged(self):
     self.load_notifications_mock.return_value = [
         {
             'id': 'a',
             'title': {'en-US': 'default'},
             'message': {'en-US': 'default'},
             'variants': [
                 {'sample': 1, 'message': {'en-US': 'variant'}}
             ]
         }
     ]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 1)
     self.assertEqual(result['notifications'][0]['id'], 'a')
     self.assertEqual(result['notifications'][0]['title']['en-US'], 'default')
     self.assertEqual(result['notifications'][0]['message']['en-US'], 'variant')
     self.assertFalse('variants' in result['notifications'][0])
     self.assertFalse('sample' in result['notifications'][0])
Esempio n. 42
0
 def test_default_group_notification_returned_if_valid(self):
     self.load_notifications_mock.return_value = [
         {'id': '1', 'title': {'en-US': ''}, 'message': {'en-US': ''}},
         {
             'id': 'a',
             'title': {'en-US': '0'},
             'message': {'en-US': '0'},
             'variants': [
                 {'title': {'en-US': '1'}, 'message': {'en-US': '1'}},
             ],
         },
     ]
     result = json.loads(notification.notification({
         'QUERY_STRING': 'lastVersion=197001010000-a/0',
     }, lambda *args: None))
     self.assertEqual(len(result['notifications']), 2)
     self.assertEqual(result['notifications'][0]['id'], '1')
     self.assertEqual(result['notifications'][1]['id'], 'a')
     self.assertEqual(result['notifications'][1]['title']['en-US'], '0')
     self.assertNotIn('variants', result['notifications'][1])
     self.assertRegexpMatches(result['version'], r'-a/0')
Esempio n. 43
0
 def test_notification_variant_merged(self):
   self.load_notifications_mock.return_value = [
     {
       "id": "a",
       "title.en-GB": "default",
       "message.en-GB": "default",
       "message.de-DE": "vorgabe",
       "variants": [
         {
           "sample": 1,
           "message.en-GB": "variant"
         }
       ]
     }
   ]
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "a")
   self.assertEqual(result["notifications"][0]["title.en-GB"], "default")
   self.assertEqual(result["notifications"][0]["message.en-GB"], "variant")
   self.assertEqual(result["notifications"][0]["message.de-DE"], "vorgabe")
   self.assertFalse("variants" in result["notifications"][0])
   self.assertFalse("sample" in result["notifications"][0])
Esempio n. 44
0
 def test_no_variant_no_notifications(self):
     self.load_notifications_mock.return_value = [
         {'id': 'a', 'variants': [{'sample': 0}]}
     ]
     result = json.loads(notification.notification({}, lambda *args: None))
     self.assertEqual(len(result['notifications']), 0)
Esempio n. 45
0
 def test_no_group(self):
   self.load_notifications_mock.return_value = [{"id": "1"}]
   result = json.loads(notification.notification({}, lambda *args: None))
   self.assertEqual(len(result["notifications"]), 1)
   self.assertEqual(result["notifications"][0]["id"], "1")
   self.assertFalse("-" in result["version"])