def test_get_webapp_products(self): api = Products(config=self.config) res = api.get(type='webapp') res_expected = { 'products': ['ClockOClock', 'EmailApp'], 'hits': { 'EmailApp': [ { "product": "EmailApp", "version": "0.2", "start_date": None, "end_date": None, "throttle": 1.0, "featured": False, "release": "Beta", "has_builds": False }, { "product": "EmailApp", "version": "0.1", "start_date": None, "end_date": None, "throttle": 1.0, "featured": False, "release": "Release", "has_builds": False } ], 'ClockOClock': [ { "product": "ClockOClock", "version": "1.0.18", "start_date": None, "end_date": None, "throttle": 1.0, "featured": False, "release": "Release", "has_builds": False } ] }, 'total': 3 } self.assertEqual(res, res_expected)
def test_get(self): products = Products(config=self.config) now = datetimeutil.utc_now().date() lastweek = now - datetime.timedelta(days=7) now_str = datetimeutil.date_to_string(now) lastweek_str = datetimeutil.date_to_string(lastweek) #...................................................................... # Test 1: find one exact match for one product and one version params = { "versions": "Firefox:8.0" } res = products.get(**params) res_expected = { "hits": [ { "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False } ], "total": 1 } self.assertEqual(res, res_expected) #...................................................................... # Test 2: Find two different products with their correct verions params = { "versions": ["Firefox:8.0", "Thunderbird:10.0.2b"] } res = products.get(**params) res_expected = { "hits": [ { "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }, { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False } ], "total": 2 } self.assertEqual(res, res_expected) #...................................................................... # Test 3: empty result, no products:version found params = { "versions": "Firefox:14.0" } res = products.get(**params) res_expected = { "hits": [], "total": 0 } self.assertEqual(res, res_expected) #...................................................................... # Test 4: Test products list is returned with no parameters # Note that the expired version is not returned params = {} res = products.get(**params) res_expected = { "products": ["Firefox", "Thunderbird", "Fennec"], "hits": { "Firefox": [ { "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False } ], "Thunderbird": [ { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False, } ], "Fennec": [ { "product": "Fennec", "version": "11.0.1", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False } ] }, "total": 3 } self.assertEqual(res, res_expected) #...................................................................... # Test 5: An unvalid versions list is passed, all versions are returned params = { 'versions': [1] } res = products.get(**params) res_expected = { "hits": [ { "product": "Fennec", "version": "11.0.1", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }, { "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }, { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False } ], "total": 3 } self.assertEqual(res, res_expected)
def test_get(self): products = Products(config=self.config) now = self.now.date() now_str = datetimeutil.date_to_string(now) #...................................................................... # Test 1: find one exact match for one product and one version params = {"versions": "Firefox:8.0"} res = products.get(**params) res_expected = { "hits": [{ "is_featured": False, "version": "8.0", "throttle": 10.0, "start_date": now_str, "end_date": now_str, "has_builds": False, "product": "Firefox", "build_type": "Release" }], "total": 1 } eq_(sorted(res['hits'][0]), sorted(res_expected['hits'][0])) #...................................................................... # Test 2: Find two different products with their correct verions params = {"versions": ["Firefox:8.0", "Thunderbird:10.0.2b"]} res = products.get(**params) res_expected = { "hits": [{ "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }, { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }], "total": 2 } eq_(sorted(res['hits'][0]), sorted(res_expected['hits'][0])) #...................................................................... # Test 3: empty result, no products:version found params = {"versions": "Firefox:14.0"} res = products.get(**params) res_expected = {"hits": [], "total": 0} eq_(res, res_expected) #...................................................................... # Test 4: Test products list is returned with no parameters # Note that the expired version is not returned params = {} res = products.get(**params) res_expected = { "products": ["Firefox", "Thunderbird", "Fennec"], "hits": { "Firefox": [{ "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False }], "Thunderbird": [{ "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False, }], "Fennec": [{ "product": "Fennec", "version": "12.0b1", "start_date": now_str, "end_date": now_str, "throttle": 100.00, "featured": False, "release": "Beta", "has_builds": False }, { "product": "Fennec", "version": "11.0.1", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False }] }, "total": 4 } eq_(res['total'], res_expected['total']) eq_(sorted(res['products']), sorted(res_expected['products'])) eq_(sorted(res['hits']), sorted(res_expected['hits'])) for product in sorted(res['hits'].keys()): eq_(sorted(res['hits'][product][0]), sorted(res_expected['hits'][product][0])) # test returned order of versions assert len(res['hits']['Fennec']) == 2 eq_(res['hits']['Fennec'][0]['version'], '12.0b1') eq_(res['hits']['Fennec'][1]['version'], '11.0.1') #...................................................................... # Test 5: An invalid versions list is passed, all versions are returned params = {'versions': [1]} res = products.get(**params) eq_(res['total'], 4)
def test_get(self): products = Products(config=self.config) now = self.now.date() lastweek = now - datetime.timedelta(days=7) nextweek = now + datetime.timedelta(days=7) now_str = datetimeutil.date_to_string(now) lastweek_str = datetimeutil.date_to_string(lastweek) nextweek_str = datetimeutil.date_to_string(nextweek) #...................................................................... # Test 1: find one exact match for one product and one version params = { "versions": "Firefox:8.0" } res = products.get(**params) res_expected = { "hits": [ { "is_featured": False, "version": "8.0", "throttle": 10.0, "start_date": now_str, "end_date": now_str, "has_builds": False, "product": "Firefox", "build_type": "Release" } ], "total": 1 } # make sure the 'throttle' is a floating point number ok_(isinstance(res['hits'][0]['throttle'], float)) eq_( sorted(res['hits'][0]), sorted(res_expected['hits'][0]) ) #...................................................................... # Test 2: Find two different products with their correct verions params = { "versions": ["Firefox:8.0", "Thunderbird:10.0.2b"] } res = products.get(**params) res_expected = { "hits": [ { "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": True }, { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False } ], "total": 2 } eq_( sorted(res['hits'][0]), sorted(res_expected['hits'][0]) ) #...................................................................... # Test 3: empty result, no products:version found params = { "versions": "Firefox:14.0" } res = products.get(**params) res_expected = { "hits": [], "total": 0 } eq_(res, res_expected) #...................................................................... # Test 4: Test products list is returned with no parameters params = {} res = products.get(**params) res_expected = { "products": ["Firefox", "Thunderbird", "Fennec"], "hits": { "Firefox": [ { "product": "Firefox", "version": "9.0", "start_date": now_str, "end_date": nextweek_str, "throttle": 100.00, "featured": True, "release": "Nightly", "has_builds": True }, { "product": "Firefox", "version": "8.0", "start_date": lastweek_str, "end_date": lastweek_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False } ], "Thunderbird": [ { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": nextweek_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False, } ], "Fennec": [ { "product": "Fennec", "version": "12.0b1", "start_date": now_str, "end_date": nextweek_str, "throttle": 100.00, "featured": False, "release": "Beta", "has_builds": True }, { "product": "Fennec", "version": "11.0.1", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False } ] }, "total": 5 } eq_(res['total'], res_expected['total']) eq_( sorted(res['products']), sorted(res_expected['products']) ) eq_(sorted(res['hits']), sorted(res_expected['hits'])) for product in sorted(res['hits'].keys()): eq_( sorted(res['hits'][product][0]), sorted(res_expected['hits'][product][0]) ) eq_(res['hits'][product], res_expected['hits'][product]) # test returned order of versions assert len(res['hits']['Fennec']) == 2 eq_(res['hits']['Fennec'][0]['version'], '12.0b1') eq_(res['hits']['Fennec'][1]['version'], '11.0.1') #...................................................................... # Test 5: An invalid versions list is passed, all versions are returned params = { 'versions': [1] } res = products.get(**params) eq_(res['total'], 5)
def test_get(self): products = Products(config=self.config) now = datetimeutil.utc_now().date() lastweek = now - datetime.timedelta(days=7) now_str = datetimeutil.date_to_string(now) lastweek_str = datetimeutil.date_to_string(lastweek) #...................................................................... # Test 1: find one exact match for one product and one version params = {"versions": "Firefox:8.0"} res = products.get(**params) res_expected = { "hits": [{ "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }], "total": 1 } self.assertEqual(res, res_expected) #...................................................................... # Test 2: Find two different products with their correct verions params = {"versions": ["Firefox:8.0", "Thunderbird:10.0.2b"]} res = products.get(**params) res_expected = { "hits": [{ "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }, { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }], "total": 2 } self.assertEqual(res, res_expected) #...................................................................... # Test 3: empty result, no products:version found params = {"versions": "Firefox:14.0"} res = products.get(**params) res_expected = {"hits": [], "total": 0} self.assertEqual(res, res_expected) #...................................................................... # Test 4: Test products list is returned with no parameters # Note that the expired version is not returned params = {} res = products.get(**params) res_expected = { "products": ["Firefox", "Thunderbird", "Fennec"], "hits": { "Firefox": [{ "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False }], "Thunderbird": [{ "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False, }], "Fennec": [{ "product": "Fennec", "version": "11.0.1", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False }] }, "total": 3 } self.assertEqual(res, res_expected) #...................................................................... # Test 5: An unvalid versions list is passed, all versions are returned params = {'versions': [1]} res = products.get(**params) res_expected = { "hits": [{ "product": "Fennec", "version": "11.0.1", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }, { "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }, { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False }], "total": 3 } self.assertEqual(res, res_expected)
def test_get(self): products = Products(config=self.config) now = datetimeutil.utc_now() now = datetime.datetime(now.year, now.month, now.day) now_str = datetimeutil.date_to_string(now) #...................................................................... # Test 1: find one exact match for one product and one version params = { "versions": "Firefox:8.0" } res = products.get(**params) res_expected = { "hits": [ { "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0 } ], "total": 1 } self.assertEqual(res, res_expected) #...................................................................... # Test 2: Find two different products with their correct verions params = { "versions": ["Firefox:8.0", "Thunderbird:10.0.2b"] } res = products.get(**params) res_expected = { "hits": [ { "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0 }, { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0 } ], "total": 2 } self.assertEqual(res, res_expected) #...................................................................... # Test 3: empty result, no products:version found params = { "versions": "Firefox:14.0" } res = products.get(**params) res_expected = { "hits": [], "total": 0 } self.assertEqual(res, res_expected) #...................................................................... # Test 4: Test products list is returned with no parameters params = {} res = products.get(**params) res_expected = { "hits": [ { "product_name": "Firefox", "release_name": "firefox", "sort": 1, "rapid_release_version": "8.0" }, { "product_name": "Fennec", "release_name": "mobile", "sort": 3, "rapid_release_version": "11.0" }, { "product_name": "Thunderbird", "release_name": "thunderbird", "sort": 2, "rapid_release_version": "10.0" } ], "total": 3 } self.assertEqual(res, res_expected)
def test_get(self): products = Products(config=self.config) now = self.now.date() now_str = datetimeutil.date_to_string(now) # ...................................................................... # Test 1: find one exact match for one product and one version params = {"versions": "Firefox:8.0"} res = products.get(**params) res_expected = { "hits": [ { "is_featured": False, "version": "8.0", "throttle": 10.0, "start_date": now_str, "end_date": now_str, "has_builds": False, "product": "Firefox", "build_type": "Release", } ], "total": 1, } eq_(sorted(res["hits"][0]), sorted(res_expected["hits"][0])) # ...................................................................... # Test 2: Find two different products with their correct verions params = {"versions": ["Firefox:8.0", "Thunderbird:10.0.2b"]} res = products.get(**params) res_expected = { "hits": [ { "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False, }, { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "is_featured": False, "build_type": "Release", "throttle": 10.0, "has_builds": False, }, ], "total": 2, } eq_(sorted(res["hits"][0]), sorted(res_expected["hits"][0])) # ...................................................................... # Test 3: empty result, no products:version found params = {"versions": "Firefox:14.0"} res = products.get(**params) res_expected = {"hits": [], "total": 0} eq_(res, res_expected) # ...................................................................... # Test 4: Test products list is returned with no parameters # Note that the expired version is not returned params = {} res = products.get(**params) res_expected = { "products": ["Firefox", "Thunderbird", "Fennec"], "hits": { "Firefox": [ { "product": "Firefox", "version": "8.0", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False, } ], "Thunderbird": [ { "product": "Thunderbird", "version": "10.0.2b", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False, } ], "Fennec": [ { "product": "Fennec", "version": "12.0b1", "start_date": now_str, "end_date": now_str, "throttle": 100.00, "featured": False, "release": "Beta", "has_builds": False, }, { "product": "Fennec", "version": "11.0.1", "start_date": now_str, "end_date": now_str, "throttle": 10.00, "featured": False, "release": "Release", "has_builds": False, }, ], }, "total": 4, } eq_(res["total"], res_expected["total"]) eq_(sorted(res["products"]), sorted(res_expected["products"])) eq_(sorted(res["hits"]), sorted(res_expected["hits"])) for product in sorted(res["hits"].keys()): eq_(sorted(res["hits"][product][0]), sorted(res_expected["hits"][product][0])) # test returned order of versions assert len(res["hits"]["Fennec"]) == 2 eq_(res["hits"]["Fennec"][0]["version"], "12.0b1") eq_(res["hits"]["Fennec"][1]["version"], "11.0.1") # ...................................................................... # Test 5: An invalid versions list is passed, all versions are returned params = {"versions": [1]} res = products.get(**params) eq_(res["total"], 4)