Example #1
0
    def test_hate(self):

        match_pattern = {}
        testItem = Item(
            genre='TestGenre',
            album = u'TestAlbum',
            artist = u'TestArtist')
        task = ImportTask()
        task.items = [testItem]
        task.is_album = False
        #empty query should let it pass
        self.assertFalse(IHatePlugin.do_i_hate_this(task, match_pattern))
        #1 query match
        match_pattern = ["artist:bad_artist","artist:TestArtist"]
        self.assertTrue(IHatePlugin.do_i_hate_this(task, match_pattern))
        #2 query matches, either should trigger
        match_pattern = ["album:test","artist:testartist"]
        self.assertTrue(IHatePlugin.do_i_hate_this(task, match_pattern))
        #query is blocked by AND clause
        match_pattern = ["album:notthis genre:testgenre"]
        self.assertFalse(IHatePlugin.do_i_hate_this(task, match_pattern))
        #both queries are blocked by AND clause with unmatched condition
        match_pattern = ["album:notthis genre:testgenre","artist:testartist album:notthis"]
        self.assertFalse(IHatePlugin.do_i_hate_this(task, match_pattern))
        #only one query should fire
        match_pattern = ["album:testalbum genre:testgenre","artist:testartist album:notthis"]
        self.assertTrue(IHatePlugin.do_i_hate_this(task, match_pattern))