def __init__(self, subcategory=None):
     self.subcategory = subcategory
     if subcategory:
         # this is the set of recommendations for a given subcategory
         cat_title = u"Recommended For You in %s" % (
                                              subcategory.untranslated_name)
         tr_title = utf8(_("Recommended For You in %s")) % utf8(
                                                           subcategory.name)
     else:
         # this is the full set of recommendations for e.g. the lobby view
         cat_title = u"Recommended For You"
         tr_title = _("Recommended For You")
     super(RecommendedForYouCategory, self).__init__(
             cat_title,
             tr_title,
             None,
             xapian.Query(),
             flags=['available-only', 'not-installed-only'],
             item_limit=60)
     self.recommender_agent = RecommenderAgent()
     self.recommender_agent.connect(
         "recommend-me", self._recommend_me_result)
     self.recommender_agent.connect(
         "error", self._recommender_agent_error)
     self.recommender_agent.query_recommend_me()
 def disabled_test_recagent_query_profile(self):
     # NOTE: This requires a working recommender host that is reachable
     recommender_agent = RecommenderAgent()
     recommender_agent.connect("profile", self.on_query_done)
     recommender_agent.connect("error", self.on_query_error)
     recommender_agent.query_profile(pkgnames=["pitivi", "fretsonfire"])
     self.loop.run()
     self.assertFalse(self.error)
 def test_recagent_query_server_status(self):
     # NOTE: This requires a working recommender host that is reachable
     recommender_agent = RecommenderAgent()
     recommender_agent.connect("server-status", self.on_query_done)
     recommender_agent.connect("error", self.on_query_error)
     recommender_agent.query_server_status()
     self.loop.run()
     self.assertFalse(self.error)
 def disabled_test_recagent_query_recommend_all_apps(self):
     # NOTE: This requires a working recommender host that is reachable
     recommender_agent = RecommenderAgent()
     recommender_agent.connect("recommend-all-apps", self.on_query_done)
     recommender_agent.connect("error", self.on_query_error)
     recommender_agent.query_recommend_all_apps()
     self.loop.run()
     self.assertFalse(self.error)
 def __init__(self, catview):
     FramedHeaderBox.__init__(self)
     # FIXME: we only need the catview for "add_titles_to_flowgrid"
     #        and "on_category_clicked" so we should be able to
     #        extract this to a "leaner" widget
     self.catview = catview
     self.catview.connect("application-activated",
                          self._on_application_activated)
     self.recommender_agent = RecommenderAgent()
示例#6
0
 def test_mocked_recagent_post_submit_profile(self, mock_spawn_helper_run):
     recommender_agent = RecommenderAgent()
     recommender_agent._calc_profile_id = lambda profile: "i-am-random"
     db = get_test_db()
     recommender_agent.post_submit_profile(db)
     args, kwargs = mock_spawn_helper_run.call_args
     # ensure we have packages in the package list and the
     # kwargs have the names we expect
     self.assertNotEqual(kwargs['data'][0]['package_list'], [])
 def disabled_test_recagent_post_submit_profile(self):
     # NOTE: This requires a working recommender host that is reachable
     recommender_agent = RecommenderAgent()
     recommender_agent.connect("submit-profile-finished", self.on_query_done)
     recommender_agent.connect("error", self.on_query_error)
     db = get_test_db()
     recommender_agent.post_submit_profile(db)
     self.loop.run()
     self.assertFalse(self.error)
 def test_recagent_query_error(self):
     # NOTE: This tests the error condition itself! it simply forces an error
     #       'cuz there definitely isn't a server here  :)
     os.environ["SOFTWARE_CENTER_RECOMMENDER_HOST"] = "https://test-no-server-here.staging.ubuntu.com"
     recommender_agent = RecommenderAgent()
     recommender_agent.connect("recommend-top", self.on_query_done)
     recommender_agent.connect("error", self.on_query_error)
     recommender_agent.query_recommend_top()
     self.loop.run()
     self.assertTrue(self.error)
示例#9
0
 def __init__(self):
     FramedHeaderBox.__init__(self)
     self.recommender_agent = RecommenderAgent()
     # keep track of applications that have been viewed via a
     # recommendation so that we can detect when a recommended app
     # has been installed
     self.recommended_apps_viewed = set()
     self.backend = get_install_backend()
     self.backend.connect("transaction-started",
                          self._on_transaction_started)
     self.backend.connect("transaction-finished",
                          self._on_transaction_finished)
示例#10
0
 def __init__(self, pkgname):
     super(AppRecommendationsCategory,
           self).__init__(u"People Also Installed",
                          _(u"People Also Installed"),
                          None,
                          xapian.Query(),
                          flags=['available-only', 'not-installed-only'],
                          item_limit=4)
     self.recommender_agent = RecommenderAgent()
     self.recommender_agent.connect("recommend-app",
                                    self._recommend_app_result)
     self.recommender_agent.connect("error", self._recommender_agent_error)
     self.recommender_agent.query_recommend_app(pkgname)
示例#11
0
 def setUp(self):
     self.loop = GLib.MainLoop(GLib.main_context_default())
     self.error = False
     if "SOFTWARE_CENTER_RECOMMENDER_HOST" in os.environ:
         orig_host = os.environ.get("SOFTWARE_CENTER_RECOMMENDER_HOST")
         self.addCleanup(os.environ.__setitem__,
                         "SOFTWARE_CENTER_RECOMMENDER_HOST", orig_host)
     else:
         self.addCleanup(os.environ.pop, "SOFTWARE_CENTER_RECOMMENDER_HOST")
     server = "https://rec.staging.ubuntu.com"
     os.environ["SOFTWARE_CENTER_RECOMMENDER_HOST"] = server
     # most tests need it
     self.recommender_agent = RecommenderAgent()
     self.recommender_agent.connect("error", self.on_query_error)
 def test_mocked_recagent_post_submit_profile(self, mock_spawn_helper_run):
     def _patched_on_submit_profile_data(*args, **kwargs):
         piston_submit_profile = {}
         recommender_agent.emit("submit-profile-finished", 
                                piston_submit_profile)
     mock_spawn_helper_run.side_effect = _patched_on_submit_profile_data
     recommender_agent = RecommenderAgent()
     recommender_agent.connect("submit-profile-finished", self.on_query_done)
     recommender_agent.connect("error", self.on_query_error)
     recommender_agent._calc_profile_id = lambda profile: "i-am-random"
     db = get_test_db()
     recommender_agent.post_submit_profile(db)
     self.assertFalse(self.error)
     args, kwargs =  mock_spawn_helper_run.call_args
     self.assertNotEqual(kwargs['data'][0]['package_list'], [])