def test_recommender_extra_data(test_ctx): # Test that the recommender uses locale data from the "extra" # section if available. def validate_recommendations(data, expected_locale): # Make sure the structure of the recommendations is correct and that we # recommended the the right addon. data = sorted(data, key=lambda x: x[1], reverse=True) assert isinstance(data, list) assert len(data) == len(FAKE_LOCALE_DATA[expected_locale]) # Make sure that the reported addons are the one from the fake data. for (addon_id, weight), (expected_id, expected_weight) in zip( data, FAKE_LOCALE_DATA[expected_locale]): assert addon_id == expected_id assert weight == expected_weight ctx = install_mock_data(test_ctx) r = LocaleRecommender(ctx) recommendations = r.recommend({}, 10, extra_data={"locale": "en"}) validate_recommendations(recommendations, "en") # Make sure that we favour client data over the extra data. recommendations = r.recommend({"locale": "en"}, 10, extra_data={"locale": "te-ST"}) validate_recommendations(recommendations, "en")
def test_recommender_extra_data(): # Test that the recommender uses locale data from the "extra" # section if available. def validate_recommendations(data, expected_locale): # Make sure the structure of the recommendations is correct and that we # recommended the the right addon. assert isinstance(data, list) assert len(data) == len(FAKE_LOCALE_DATA[expected_locale]) # Make sure that the reported addons are the one from the fake data. for (addon_id, weight) in data: assert addon_id in FAKE_LOCALE_DATA[expected_locale] assert 1 == weight ctx = create_test_ctx() r = LocaleRecommender(ctx) recommendations = r.recommend({}, 10, extra_data={"locale": "en"}) validate_recommendations(recommendations, "en") # Make sure that we favour client data over the extra data. recommendations = r.recommend({"locale": "en"}, 10, extra_data={"locale": "te-ST"}) validate_recommendations(recommendations, "en")
def test_recommendations(mock_s3_json_downloader): # Test that the locale recommender returns the correct # locale dependent addons. r = LocaleRecommender() recommendations = r.recommend({"locale": "en"}, 10) # Make sure the structure of the recommendations is correct and that we # recommended the the right addon. assert isinstance(recommendations, list) assert len(recommendations) == len(FAKE_LOCALE_DATA["en"]) # Make sure that the reported addons are the one from the fake data. for addon_id in recommendations: assert addon_id in FAKE_LOCALE_DATA["en"]
def test_recommendations(test_ctx): """Test that the locale recommender returns the correct locale dependent addons. The JSON output for this recommender should be a list of 2-tuples of (GUID, weight). """ ctx = install_mock_data(test_ctx) r = LocaleRecommender(ctx) recommendations = r.recommend({"locale": "en"}, 10) # Make sure the structure of the recommendations is correct and that we # recommended the the right addon. assert isinstance(recommendations, list) assert len(recommendations) == len(FAKE_LOCALE_DATA["en"]) # Make sure that the reported addons are the one from the fake data. for (addon_id, weight) in recommendations: assert 1 == weight assert addon_id in FAKE_LOCALE_DATA["en"]