Exemple #1
0
 def spawn_write_new_review_ui(self, translated_app, version, iconname,
                               origin, parent_xid, datadir):
     """ this spawns the UI for writing a new review and
         adds it automatically to the reviews DB """
     app = translated_app.get_untranslated_app(self.db)
     cmd = [
         os.path.join(datadir, RNRApps.SUBMIT_REVIEW),
         "--pkgname",
         app.pkgname,
         "--iconname",
         iconname,
         "--parent-xid",
         "%s" % parent_xid,
         "--version",
         version,
         "--origin",
         origin,
         "--datadir",
         datadir,
     ]
     if app.appname:
         # needs to be (utf8 encoded) str, otherwise call fails
         cmd += ["--appname", utf8(app.appname)]
     spawn_helper = SpawnHelper(format="json")
     spawn_helper.connect("data-available", self._on_submit_review_data,
                          app)
     spawn_helper.connect("exited", self._on_exited_callback, app)
     spawn_helper.connect("error", self._on_error_callback, app)
     spawn_helper.run(cmd)
 def test_spawn_helper_lp957599(self):
     days_delta = 6
     spawn_helper = SpawnHelper()
     with patch.object(spawn_helper, "run") as mock_run:
         spawn_helper.run_generic_piston_helper(
             "RatingsAndReviewsAPI", "review_stats", days=days_delta)
         cmd = mock_run.call_args[0][0]
         #print mock_run.call_args_list
         #print cmd
         self.assertEqual(cmd[3], 'RatingsAndReviewsAPI')
         self.assertEqual(cmd[4], 'review_stats')
         self.assertEqual(cmd[5], '{"days": 6}')
Exemple #3
0
 def test_spawn_helper_lp957599(self):
     days_delta = 6
     spawn_helper = SpawnHelper()
     with patch.object(spawn_helper, "run") as mock_run:
         spawn_helper.run_generic_piston_helper(
             "RatingsAndReviewsAPI", "review_stats", days=days_delta)
         cmd = mock_run.call_args[0][0]
         #print mock_run.call_args_list
         #print cmd
         self.assertEqual(cmd[3], 'RatingsAndReviewsAPI')
         self.assertEqual(cmd[4], 'review_stats')
         self.assertEqual(cmd[5], '{"days": 6}')
Exemple #4
0
 def _retrieve_votes_from_server(self):
     LOG.debug("_retrieve_votes_from_server started")
     user = get_person_from_config()
     
     if not user:
         LOG.warn("Could not get usefulness from server, no username in config file")
         return False
     
     # run the command and add watcher
     spawn_helper = SpawnHelper()
     spawn_helper.connect("data-available", self._on_usefulness_data)
     spawn_helper.run_generic_piston_helper(
         "RatingsAndReviewsAPI", "get_usefulness", username=user)
Exemple #5
0
 def get_reviews(self, translated_app, page=1,
                 language=None, sort=0, relaxed=False):
     """ public API, triggers fetching a review and emits
         get-reviews-finished signal when its ready
     """
     # its fine to use the translated appname here, we only submit the
     # pkgname to the server
     app = translated_app
     self._update_rnrclient_offline_state()
     sort_method = self._review_sort_methods[sort]
     if language is None:
         language = self.language
     # gather args for the helper
     if relaxed:
         origin = 'any'
         distroseries = 'any'
     else:
         try:
             origin = self.cache.get_origin(app.pkgname)
         except:
             # this can happen if e.g. the app has multiple origins, this
             # will be handled later
             origin = None
         # special case for not-enabled PPAs
         if not origin and self.db:
             details = app.get_details(self.db)
             ppa = details.ppaname
             if ppa:
                 origin = "lp-ppa-%s" % ppa.replace("/", "-")
         # if there is no origin, there is nothing to do
         if not origin:
             self.emit("get-reviews-finished", app, [])
             return
         distroseries = self.distro.get_codename()
     # run the command and add watcher
     cmd = [os.path.join(softwarecenter.paths.datadir,
         PistonHelpers.GET_REVIEWS),
            "--language", language,
            "--origin", origin,
            "--distroseries", distroseries,
            "--pkgname", str(app.pkgname),  # ensure its str, not unicode
            "--page", str(page),
            "--sort", sort_method,
            ]
     spawn_helper = SpawnHelper()
     spawn_helper.connect(
         "data-available", self._on_reviews_helper_data, app)
     spawn_helper.run(cmd)
Exemple #6
0
 def spawn_report_abuse_ui(self, review_id, parent_xid, datadir):
     """ this spawns the UI for reporting a review as inappropriate
         and adds the review-id to the internal hide list. once the
         operation is complete it will emit remove-review with the updated
         review list
     """
     cmd = [os.path.join(datadir, RNRApps.REPORT_REVIEW),
            "--review-id", review_id,
            "--parent-xid", "%s" % parent_xid,
            "--datadir", datadir,
            ]
     spawn_helper = SpawnHelper("json")
     spawn_helper.connect("exited",
                          self._on_report_abuse_finished,
                          review_id)
     spawn_helper.run(cmd)
 def get_reviews(self,
                 translated_app,
                 callback,
                 page=1,
                 language=None,
                 sort=0,
                 relaxed=False):
     """ public api, triggers fetching a review and calls callback
         when its ready
     """
     # its fine to use the translated appname here, we only submit the
     # pkgname to the server
     app = translated_app
     self._update_rnrclient_offline_state()
     sort_method = self._review_sort_methods[sort]
     if language is None:
         language = self.language
     # gather args for the helper
     if relaxed:
         origin = 'any'
         distroseries = 'any'
     else:
         try:
             origin = self.cache.get_origin(app.pkgname)
         except:
             # this can happen if e.g. the app has multiple origins, this
             # will be handled later
             origin = None
         # special case for not-enabled PPAs
         if not origin and self.db:
             details = app.get_details(self.db)
             ppa = details.ppaname
             if ppa:
                 origin = "lp-ppa-%s" % ppa.replace("/", "-")
         # if there is no origin, there is nothing to do
         if not origin:
             callback(app, [])
             return
         distroseries = self.distro.get_codename()
     # run the command and add watcher
     cmd = [
         os.path.join(softwarecenter.paths.datadir,
                      PistonHelpers.GET_REVIEWS),
         "--language",
         language,
         "--origin",
         origin,
         "--distroseries",
         distroseries,
         "--pkgname",
         str(app.pkgname),  # ensure its str, not unicode
         "--page",
         str(page),
         "--sort",
         sort_method,
     ]
     spawn_helper = SpawnHelper()
     spawn_helper.connect("data-available", self._on_reviews_helper_data,
                          app, callback)
     spawn_helper.run(cmd)
Exemple #8
0
 def refresh_review_stats(self, callback):
     """ public api, refresh the available statistics """
     try:
         mtime = os.path.getmtime(self.REVIEW_STATS_CACHE_FILE)
         days_delta = int((time.time() - mtime) // (24 * 60 * 60))
         days_delta += 1
     except OSError:
         days_delta = 0
     LOG.debug("refresh with days_delta: %s" % days_delta)
     #origin = "any"
     #distroseries = self.distro.get_codename()
     cmd = [
         os.path.join(softwarecenter.paths.datadir,
                      PistonHelpers.GET_REVIEW_STATS),
         # FIXME: the server currently has bug (#757695) so we
         #        can not turn this on just yet and need to use
         #        the old "catch-all" review-stats for now
         #"--origin", origin,
         #"--distroseries", distroseries,
     ]
     if days_delta:
         cmd += ["--days-delta", str(days_delta)]
     spawn_helper = SpawnHelper()
     spawn_helper.connect("data-available", self._on_review_stats_data,
                          callback)
     spawn_helper.run(cmd)
Exemple #9
0
 def spawn_delete_review_ui(self, review_id, parent_xid, datadir):
     cmd = [
         os.path.join(datadir, RNRApps.DELETE_REVIEW),
         "--review-id",
         "%s" % review_id,
         "--parent-xid",
         "%s" % parent_xid,
         "--datadir",
         datadir,
     ]
     spawn_helper = SpawnHelper(format="none")
     spawn_helper.connect("exited", self._on_delete_review_finished,
                          review_id)
     spawn_helper.connect("error", self._on_delete_review_error, review_id)
     spawn_helper.run(cmd)
Exemple #10
0
 def spawn_delete_review_ui(self, review_id, parent_xid, datadir):
     cmd = [os.path.join(datadir, RNRApps.DELETE_REVIEW),
            "--review-id", "%s" % review_id,
            "--parent-xid", "%s" % parent_xid,
            "--datadir", datadir,
            ]
     spawn_helper = SpawnHelper(format="none")
     spawn_helper.connect("exited",
                          self._on_delete_review_finished,
                          review_id)
     spawn_helper.connect("error", self._on_delete_review_error,
                          review_id)
     spawn_helper.run(cmd)
Exemple #11
0
 def spawn_write_new_review_ui(self, translated_app, version, iconname,
                               origin, parent_xid, datadir):
     """ this spawns the UI for writing a new review and
         adds it automatically to the reviews DB """
     app = translated_app.get_untranslated_app(self.db)
     cmd = [os.path.join(datadir, RNRApps.SUBMIT_REVIEW),
            "--pkgname", app.pkgname,
            "--iconname", iconname,
            "--parent-xid", "%s" % parent_xid,
            "--version", version,
            "--origin", origin,
            "--datadir", datadir,
            ]
     if app.appname:
         # needs to be (utf8 encoded) str, otherwise call fails
         cmd += ["--appname", utf8(app.appname)]
     spawn_helper = SpawnHelper(format="json")
     spawn_helper.connect(
         "data-available", self._on_submit_review_data, app)
     spawn_helper.connect("exited", self._on_exited_callback, app)
     spawn_helper.connect("error", self._on_error_callback, app)
     spawn_helper.run(cmd)
Exemple #12
0
 def spawn_submit_usefulness_ui(self, review_id, is_useful, parent_xid, datadir, callback):
     cmd = [os.path.join(datadir, RNRApps.SUBMIT_USEFULNESS), 
            "--review-id", "%s" % review_id,
            "--is-useful", "%s" % int(is_useful),
            "--parent-xid", "%s" % parent_xid,
            "--datadir", datadir,
           ]
     spawn_helper = SpawnHelper(format="none")
     spawn_helper.connect("exited", 
                          self._on_submit_usefulness_finished, 
                          review_id, is_useful, callback)
     spawn_helper.connect("error",
                          self._on_submit_usefulness_error,
                          review_id, callback)
     spawn_helper.run(cmd)
 def spawn_submit_usefulness_ui(self, review_id, is_useful, parent_xid,
                                datadir, callback):
     cmd = [
         os.path.join(datadir, RNRApps.SUBMIT_USEFULNESS),
         "--review-id",
         "%s" % review_id,
         "--is-useful",
         "%s" % int(is_useful),
         "--parent-xid",
         "%s" % parent_xid,
         "--datadir",
         datadir,
     ]
     spawn_helper = SpawnHelper(format="none")
     spawn_helper.connect("exited", self._on_submit_usefulness_finished,
                          review_id, is_useful, callback)
     spawn_helper.connect("error", self._on_submit_usefulness_error,
                          review_id, callback)
     spawn_helper.run(cmd)
Exemple #14
0
 def spawn_modify_review_ui(self, parent_xid, iconname, datadir, review_id):
     """ this spawns the UI for writing a new review and
         adds it automatically to the reviews DB """
     cmd = [
         os.path.join(datadir, RNRApps.MODIFY_REVIEW),
         "--parent-xid",
         "%s" % parent_xid,
         "--iconname",
         iconname,
         "--datadir",
         "%s" % datadir,
         "--review-id",
         "%s" % review_id,
     ]
     spawn_helper = SpawnHelper(format="json")
     spawn_helper.connect("data-available", self._on_modify_review_finished,
                          review_id)
     spawn_helper.connect("error", self._on_modify_review_error, review_id)
     spawn_helper.run(cmd)
Exemple #15
0
 def spawn_modify_review_ui(self, parent_xid, iconname, datadir, review_id):
     """ this spawns the UI for writing a new review and
         adds it automatically to the reviews DB """
     cmd = [os.path.join(datadir, RNRApps.MODIFY_REVIEW),
            "--parent-xid", "%s" % parent_xid,
            "--iconname", iconname,
            "--datadir", "%s" % datadir,
            "--review-id", "%s" % review_id,
            ]
     spawn_helper = SpawnHelper(format="json")
     spawn_helper.connect("data-available",
                          self._on_modify_review_finished,
                          review_id)
     spawn_helper.connect("error", self._on_modify_review_error,
                          review_id)
     spawn_helper.run(cmd)
    def _retrieve_votes_from_server(self):
        LOG.debug("_retrieve_votes_from_server started")
        user = get_person_from_config()

        if not user:
            LOG.warn("Could not get usefulness from server, no username "
                "in config file")
            return False

        # run the command and add watcher
        spawn_helper = SpawnHelper()
        spawn_helper.connect("data-available", self._on_usefulness_data)
        spawn_helper.run_generic_piston_helper(
            "RatingsAndReviewsAPI", "get_usefulness", username=user)
Exemple #17
0
 def _retrieve_votes_from_server(self):
     LOG.debug("_retrieve_votes_from_server started")
     user = get_person_from_config()
     
     if not user:
         LOG.warn("Could not get usefulness from server, no username in config file")
         return False
     
     # run the command and add watcher
     cmd = [os.path.join(
             softwarecenter.paths.datadir, PistonHelpers.GET_USEFUL_VOTES),
            "--username", user, 
           ]
     spawn_helper = SpawnHelper()
     spawn_helper.connect("data-available", self._on_usefulness_data)
     spawn_helper.run(cmd)
Exemple #18
0
 def refresh_review_stats(self):
     """ public API, refresh the available statistics """
     try:
         mtime = os.path.getmtime(self.REVIEW_STATS_CACHE_FILE)
         days_delta = int((time.time() - mtime) // (24 * 60 * 60))
         days_delta += 1
     except OSError:
         days_delta = 0
     LOG.debug("refresh with days_delta: %s" % days_delta)
     # FIXME: the server currently has bug (#757695) so we
     #        can not turn this on just yet and need to use
     #        the old "catch-all" review-stats for now
     #origin = "any"
     #distroseries = self.distro.get_codename()
     spawn_helper = SpawnHelper()
     spawn_helper.connect("data-available", self._on_review_stats_data)
     if days_delta:
         spawn_helper.run_generic_piston_helper("RatingsAndReviewsAPI",
                                                "review_stats",
                                                days=days_delta)
     else:
         spawn_helper.run_generic_piston_helper("RatingsAndReviewsAPI",
                                                "review_stats")
Exemple #19
0
 def refresh_review_stats(self):
     """ public API, refresh the available statistics """
     try:
         mtime = os.path.getmtime(self.REVIEW_STATS_CACHE_FILE)
         days_delta = int((time.time() - mtime) // (24 * 60 * 60))
         days_delta += 1
     except OSError:
         days_delta = 0
     LOG.debug("refresh with days_delta: %s" % days_delta)
     # FIXME: the server currently has bug (#757695) so we
     #        can not turn this on just yet and need to use
     #        the old "catch-all" review-stats for now
     #origin = "any"
     #distroseries = self.distro.get_codename()
     spawn_helper = SpawnHelper()
     spawn_helper.connect("data-available", self._on_review_stats_data)
     if days_delta:
         spawn_helper.run_generic_piston_helper(
             "RatingsAndReviewsAPI", "review_stats", days=days_delta)
     else:
         spawn_helper.run_generic_piston_helper(
             "RatingsAndReviewsAPI", "review_stats")
 def spawn_report_abuse_ui(self, review_id, parent_xid, datadir, callback):
     """ this spawns the UI for reporting a review as inappropriate
         and adds the review-id to the internal hide list. once the
         operation is complete it will call callback with the updated
         review list
     """
     cmd = [
         os.path.join(datadir, RNRApps.REPORT_REVIEW),
         "--review-id",
         review_id,
         "--parent-xid",
         "%s" % parent_xid,
         "--datadir",
         datadir,
     ]
     spawn_helper = SpawnHelper("json")
     spawn_helper.connect("exited", self._on_report_abuse_finished,
                          review_id, callback)
     spawn_helper.run(cmd)