Пример #1
0
    def test_query_genre_works(self, ptr_array, query_model):
        item = Mock()
        array, model = Mock(), ModelStub(item)
        query_model.return_value = model
        ptr_array.return_value = array

        rb = RBHandler(self.shell)
        rb.query({"genre": "a nice genre"})
        self.db.do_full_query_parsed.assert_called_with(model, array)
        self.db.query_append_params.assert_has_calls([call(array, "FUZZY", "GENRE_FOLDED", "a nice genre")])
Пример #2
0
    def test_query_artist_works(self, ptr_array, query_model):
        item = Mock()
        array, model = Mock(), ModelStub(item)
        query_model.return_value = model
        ptr_array.return_value = array

        rb = RBHandler(self.shell)
        rb.query({"artist": "calabazas"})
        self.db.do_full_query_parsed.assert_called_with(model, array)
        self.db.query_append_params.assert_has_calls([call(array, "FUZZY", "ARTIST_FOLDED", "calabazas")])
Пример #3
0
    def test_query_with_rating_exact_match_and_play_count(self, ptr_array, query_model):
        item = Mock()
        array, model = Mock(), ModelStub(item)
        query_model.return_value = model
        ptr_array.return_value = array

        rb = RBHandler(self.shell)
        rb.query({"rating": 5, "play_count": 2, "exact-match": True, "first": 3, "limit": 1})
        self.assertEquals(model.sort_order, "album_sort_func")
        self.assertFalse(model.desc)
        self.db.do_full_query_parsed.assert_called_with(model, array)
        self.db.query_append_params.assert_has_calls(
            [
                call(array, "EQUALS", "TYPE", "song"),
                call(array, "GREATER_THAN", "rating", 5.0),
                call(array, "GREATER_THAN", "play_count", 2),
            ]
        )
Пример #4
0
    def test_query_for_all_works(self, ptr_array, query_model):
        item = Mock()
        array, model = Mock(), ModelStub(item)
        query_model.return_value = model
        ptr_array.return_value = array

        rb = RBHandler(self.shell)
        rb.query({"all": "calabazas"})
        self.db.do_full_query_parsed.assert_called_with(model, array)
        self.db.query_append_params.assert_has_calls(
            [
                call(array, "EQUALS", "TYPE", "song"),
                call(array, "FUZZY", "ARTIST_FOLDED", "calabazas"),
                call(array, "EQUALS", "TYPE", "song"),
                call(array, "FUZZY", "TITLE_FOLDED", "calabazas"),
                call(array, "EQUALS", "TYPE", "song"),
                call(array, "FUZZY", "ALBUM_FOLDED", "calabazas"),
                call(array, "EQUALS", "TYPE", "song"),
                call(array, "FUZZY", "GENRE_FOLDED", "calabazas"),
            ]
        )
Пример #5
0
 def test_query_with_invalid_type_fails(self, ptr_array, query_model):
     rb = RBHandler(self.shell)
     with self.assertRaises(InvalidQueryException):
         rb.query({"type": "x"})
Пример #6
0
 def test_search_with_null_filters_returns_empty_list(self, ptr_array, query_model):
     rb = RBHandler(self.shell)
     result = rb.query(None)
     self.assertListEqual(result, [])