예제 #1
0
    def test_next(self):
        recommend.MIN_CANDIDATES = 0
        self.assertEquals(recommend.next(1, 2), 3)

        # add node to the graph, return random node
        self.assertEquals(recommend.next(20), 11)
        self.assertTrue(recommend._graph.has_node(20))
예제 #2
0
    def fill_playlist(self, id_to_draw_next = None):
        try:
            curr_pos = self.xsync.playlist_current_pos()["position"]
            if curr_pos == -1:
                return
        except xmmsclient.XMMSError:
            return

        playlist_entries = self.xsync.playlist_list_entries()

        if id_to_draw_next is None:
            id_to_draw_next = playlist_entries[curr_pos]

        if curr_pos == len(playlist_entries)-1:
            next = recommend.next(id_to_draw_next,
                                  default = self.choose_random_media())

            logging.info("next(%s) -> %s", id_to_draw_next, next)
            self.do_insertion(curr_pos+1, next)
예제 #3
0
    def test_return_default(self):
        recommend.MIN_CANDIDATES = float("inf")

        default = object()
        self.assertIs(recommend.next(10, 3, default), default)
예제 #4
0
    def test_min_candidates(self):
        recommend.MIN_CANDIDATES = float("inf")
        self.assertEquals(recommend.next(10, 3), None)

        recommend.MIN_CANDIDATES = 0
        self.assertEquals(recommend.next(10, 3), 11)