Exemplo n.º 1
0
    def test_renotify_nonexistant(self):
        release = Release(
            messages=["title  -  /some/ ¤/(- #thing#  -  pasta"],
            channel=channel,
            title="title",
            url="animal: some &mood=thing f1: first_fixed f2: fixed_second",
            indexer="Single",
            backends=config.backends.keys(),
        )

        misc.announce_await_push(self, release)

        backends.max_announcements(self, "my_sonarr", 1)
        backends.max_announcements(self, "my_radarr", 1)
        backends.max_announcements(self, "my_lidarr", 1)
        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )

        web.login(config)
        web.renotify(self, config, db.get_announcement(), "nonexistent")

        backends.max_announcements(self, "my_sonarr", 1)
        backends.max_announcements(self, "my_radarr", 1)
        backends.max_announcements(self, "my_lidarr", 1)
        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)
    def test_no_snatch(self):
        release = Release(
            messages=["this is a name  -  /cow/ ¤/(- #angry#  -  pasta and sauce"],
            channel=channel,
            title="this is a name",
            url="animal: cow &mood=angry f1: first_fixed f2: fixed_second",
            indexer="Single",
            backends=["my_sonarr"],
        )

        backends.push_counter = 1
        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_sonarr"],
            release,
        )
        backends.max_announcements(self, "my_radarr", 0)

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 3
0
    def test_sonarr_snatch(self):
        release = Release(
            messages=["son snatch  -  /dog/ ¤/(- #sad#  -  pasta"],
            channel=channel,
            title="son snatch",
            url="animal: dog &mood=sad f1: first_fixed f2: fixed_second",
            indexer="Single",
            backends=config.backends.keys(),
            snatches=["my_sonarr"],
        )

        backends.send_approved("my_sonarr", True)

        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_sonarr"],
            release,
        )

        backends.max_announcements(self, "my_radarr", 1)
        backends.max_announcements(self, "my_lidarr", 1)
        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 1)

        misc.check_announced(
            self,
            config,
            release,
        )
    def test_radarr1_snatch(self):
        release = Release(
            messages=["two title : another stuff"],
            channel=channel,
            title="two title",
            url="smth: another stuff",
            indexer="Simple1",
            backends=config.backends.keys(),
            snatches=["Radarr1"],
        )

        backends.send_approved("Radarr1", True)

        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["Radarr1"],
            release,
        )
        backends.max_announcements(self, "Sonarr1", 1)
        backends.max_announcements(self, "Sonarr2", 1)
        backends.max_announcements(self, "Radarr2", 1)
        backends.max_announcements(self, "Lidarr1", 1)
        backends.max_announcements(self, "Lidarr2", 1)

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 1)

        misc.check_announced(
            self,
            config,
            release,
        )
    def test_no_snatch(self):
        release = Release(
            messages=["a title : some stuff"],
            channel=channel,
            title="a title",
            url="smth: some stuff",
            indexer="Simple1",
            backends=config.backends.keys(),
        )

        misc.announce_await_push(self, release)

        for backend in config.backends.values():
            backends.check_first_rx(
                self,
                backend,
                release,
            )

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 6
0
    def test_broken_json_backend_reply(self):
        release = Release(
            messages=[
                "name this is  -  /tiger/ ¤/(- #lazy#  -  pasta and sauce"
            ],
            channel=channel,
            title="name this is",
            url="animal: tiger &mood=lazy f1: first_fixed f2: fixed_second",
            indexer="Single",
            backends=config.backends.keys(),
        )

        backends.send("my_sonarr", "{'apr': some")
        backends.send("my_radarr", "broken")
        backends.send("my_lidarr", "{'approved': 'asdf'}")

        misc.announce_await_push(self, release)

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 7
0
    def test_no_snatch(self):
        release = Release(
            messages=[
                "Old: multi title",
                "Category: color tree fruit;",
                "PATH: https://example/f?id=12345",
            ],
            channel=channel,
            title="multi title",
            url="http://example/dl.php/12345/config_string/multi+title.jpg",
            indexer="Multi",
            backends=config.backends.keys(),
        )

        irc.announce(release, wait=0.5)
        backends.max_announcements(self, "my_sonarr", 0)
        backends.max_announcements(self, "my_radarr", 0)
        backends.max_announcements(self, "my_lidarr", 0)
        self.assertEqual(db.nr_announcements(), 0)
        self.assertEqual(db.nr_snatches(), 0)

        irc.announce(release, wait=0.5)
        backends.max_announcements(self, "my_sonarr", 0)
        backends.max_announcements(self, "my_radarr", 0)
        backends.max_announcements(self, "my_lidarr", 0)
        self.assertEqual(db.nr_announcements(), 0)
        self.assertEqual(db.nr_snatches(), 0)

        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_sonarr"],
            release,
        )
        backends.check_first_rx(
            self,
            config.backends["my_radarr"],
            release,
        )
        backends.check_first_rx(
            self,
            config.backends["my_lidarr"],
            release,
        )

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 8
0
    def test_non_capture_with_match(self):
        release = Release(
            messages=[
                "Old: some title",
                "Category: color tree fruit; misc stuff",
                "PATH: https://example/f?id=1357",
            ],
            channel=channel,
            title="some title",
            url="http://example/dl.php/1357/config_string/some+title.jpg",
            indexer="Multi",
            backends=config.backends.keys(),
        )

        irc.announce(release)
        irc.announce(release)
        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_sonarr"],
            release,
        )
        backends.check_first_rx(
            self,
            config.backends["my_radarr"],
            release,
        )
        backends.check_first_rx(
            self,
            config.backends["my_lidarr"],
            release,
        )

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 9
0
    def test_no_snatch_second_pattern(self):
        release = Release(
            messages=[
                "this is some name  -  -donkey- ; =grumpy=  -  food: pizza"
            ],
            channel=channel,
            title="this is some name",
            url="animal: donkey &mood=grumpy f1: first_fixed f2: fixed_second",
            indexer="Single",
            backends=config.backends.keys(),
        )

        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_sonarr"],
            release,
        )
        backends.check_first_rx(
            self,
            config.backends["my_radarr"],
            release,
        )
        backends.check_first_rx(
            self,
            config.backends["my_lidarr"],
            release,
        )

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 10
0
    def test_snatches(self):

        releases = []
        snatches = []
        for i in range(90):
            tracker = trackers[i % 3]
            release = Release(
                messages=[f"title {i} yes : else {i}"],
                channel=tracker["channel"],
                title=f"title {i} yes",
                url=f"{tracker['url']}: else {i}",
                indexer=tracker["name"],
                backends=config.backends.keys(),
            )

            if i % 3 == 0:
                backends.send_approved("MySonarr", True)
                release.snatches.append("MySonarr")
                snatches.append(release)
            elif i % 5 == 0:
                backends.send_approved("MyRadarr", True)
                release.snatches.append("MyRadarr")
                snatches.append(release)
            elif i % 7 == 0:
                backends.send_approved("MyLidarr", True)
                release.snatches.append("MyLidarr")
                snatches.append(release)
            misc.announce_await_push(self, release, wait=0)
            releases.append(release)

        # Wait for all to complete
        time.sleep(1)

        backends.max_announcements(self, "MySonarr", 90)
        backends.max_announcements(self, "MyRadarr", 90)
        backends.max_announcements(self, "MyLidarr", 90)

        misc.check_announcements(self, config, releases, snatches)
Exemplo n.º 11
0
    def test_no_snatch(self):

        releases = []
        for i in range(90):
            tracker = trackers[i % 3]
            release = Release(
                messages=[f"title {i} no : something {i}"],
                channel=tracker["channel"],
                title=f"title {i} no",
                url=f"{tracker['url']}: something {i}",
                indexer=tracker["name"],
                backends=config.backends.keys(),
            )

            misc.announce_await_push(self, release, wait=0)
            releases.append(release)

        # Wait for all to complete
        time.sleep(1)

        for release in releases:
            backends.find_and_check_rx(
                self,
                config.backends["MySonarr"],
                release,
            )
            backends.find_and_check_rx(
                self,
                config.backends["MyRadarr"],
                release,
            )
            backends.find_and_check_rx(
                self,
                config.backends["MyLidarr"],
                release,
            )

        misc.check_announcements(self, config, releases, [])
Exemplo n.º 12
0
    def test_match_all(self):
        release = Release(
            messages=["tags: tag1|qwert|tag3 - extractone: SetRegex% : ; 2>1"],
            channel=channel,
            title="IF 2%21%3D1 tag1 qwert",
            url="matched: mfix1&_mfix2%26_SetRegex%_SetRegex%25_IS1",
            indexer="Linematched",
            backends=config.backends.keys(),
        )

        misc.announce_await_push(self, release)

        backends.max_announcements(self, "line_sonarr", 1)
        backends.max_announcements(self, "line_radarr", 1)
        backends.max_announcements(self, "line_lidarr", 1)
        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 13
0
    def test_extracttags_empty_tag(self):
        release = Release(
            messages=["tags: tag1||tag2 - extractone: SetRegex : ; 1"],
            channel=channel,
            title="IF 1 tag1 tag2",
            url="matched: mfix1&_mfix2%26_SetRegex_SetRegex_IS1",
            indexer="Linematched",
            backends=config.backends.keys(),
        )

        misc.announce_await_push(self, release)

        backends.max_announcements(self, "line_sonarr", 1)
        backends.max_announcements(self, "line_radarr", 1)
        backends.max_announcements(self, "line_lidarr", 1)
        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 14
0
    def test_non_capture_group_without_match(self):
        release = Release(
            messages=["yet a name - monkey - frustrated -"],
            channel=channel,
            title="yet a name",
            url=
            "animal: monkey &mood=frustrated f1: first_fixed f2: fixed_second",
            indexer="Single",
            backends=config.backends.keys(),
        )

        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_sonarr"],
            release,
        )
        backends.check_first_rx(
            self,
            config.backends["my_radarr"],
            release,
        )
        backends.check_first_rx(
            self,
            config.backends["my_lidarr"],
            release,
        )

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 15
0
    def test_sonarr_snatch(self):
        release = Release(
            messages=[
                "Old: second multi ",
                "Category: color;",
                "PATH: https://example/a?id=54321",
            ],
            channel=channel,
            title="second multi",
            url="http://example/dl.php/54321/config_string/second+multi.jpg",
            indexer="Multi",
            backends=["my_sonarr"],
            snatches=["my_sonarr"],
        )

        backends.send_approved("my_sonarr", True)

        irc.announce(release)
        irc.announce(release)
        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_sonarr"],
            release,
        )
        backends.max_announcements(self, "my_radarr", 0)
        backends.max_announcements(self, "my_lidarr", 0)

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 1)

        misc.check_announced(
            self,
            config,
            release,
        )
    def test_renotify_missing_radarr(self):
        release = Release(
            messages=["son snatch2  -  /horsie/ ¤/(- #calm#  -  pasta"],
            channel=channel,
            title="son snatch2",
            url="animal: horsie &mood=calm f1: first_fixed f2: fixed_second",
            indexer="Single",
            backends=["my_sonarr"],
        )

        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_sonarr"],
            release,
        )

        backends.max_announcements(self, "my_radarr", 0)
        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )

        browser.renotify(self, config, table_row=1, backend="my_sonarr", success=False)

        # Causes connection refused
        browser.renotify(
            self, config, table_row=1, backend="missing_radarr", success=False
        )

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)
Exemplo n.º 17
0
    def test_non_capture_group_with_match(self):
        release = Release(
            messages=["naaame - bat - splendid - [apple]"],
            channel=channel,
            title="naaame",
            url="animal: bat &mood=splendid f1: first_fixed f2: fixed_second",
            indexer="Single",
            backends=config.backends.keys(),
        )

        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_sonarr"],
            release,
        )
        backends.check_first_rx(
            self,
            config.backends["my_radarr"],
            release,
        )
        backends.check_first_rx(
            self,
            config.backends["my_lidarr"],
            release,
        )

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 0)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 18
0
    def test_renotify_lidarr(self):
        release = Release(
            messages=[
                "Old: third ", "Category: fruit;", "PATH: https://ex/a?id=99"
            ],
            channel=channel,
            title="third",
            url="http://ex/dl.php/99/config_string/third.jpg",
            indexer="Multi",
            backends=["my_radarr"],
            snatches=["my_radarr"],
        )

        backends.send_approved("my_radarr", True)

        irc.announce(release)
        irc.announce(release)
        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_radarr"],
            release,
        )
        backends.max_announcements(self, "my_sonarr", 0)
        backends.max_announcements(self, "my_lidarr", 0)

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 1)

        misc.check_announced(
            self,
            config,
            release,
        )

        backends.send_approved("my_lidarr", True)
        browser.renotify(self,
                         config,
                         table_row=1,
                         backend="my_sonarr",
                         success=False)
        browser.renotify(self,
                         config,
                         table_row=1,
                         backend="my_radarr",
                         success=False)
        browser.renotify(self,
                         config,
                         table_row=1,
                         backend="my_lidarr",
                         success=True)

        release.snatches.append("my_lidarr")

        backends.check_first_rx(
            self,
            config.backends["my_lidarr"],
            release,
        )
        backends.max_announcements(self, "my_sonarr", 1)
        backends.max_announcements(self, "my_radarr", 1)

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 2)

        misc.check_announced(
            self,
            config,
            release,
        )
Exemplo n.º 19
0
    def test_renotify_radarr(self):
        release = Release(
            messages=["son snatch2  -  /horsie/ ¤/(- #calm#  -  pasta"],
            channel=channel,
            title="son snatch2",
            url="animal: horsie &mood=calm f1: first_fixed f2: fixed_second",
            indexer="Single",
            backends=config.backends.keys(),
            snatches=["my_sonarr"],
        )

        backends.send_approved("my_sonarr", True)

        misc.announce_await_push(self, release)

        backends.check_first_rx(
            self,
            config.backends["my_sonarr"],
            release,
        )

        backends.max_announcements(self, "my_radarr", 1)
        backends.max_announcements(self, "my_lidarr", 1)
        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 1)

        misc.check_announced(
            self,
            config,
            release,
        )

        backends.send_approved("my_radarr", True)

        browser.renotify(self,
                         config,
                         table_row=1,
                         backend="my_sonarr",
                         success=False)
        browser.renotify(self,
                         config,
                         table_row=1,
                         backend="my_lidarr",
                         success=False)
        browser.renotify(self,
                         config,
                         table_row=1,
                         backend="my_radarr",
                         success=True)

        release.snatches.append("my_radarr")

        backends.check_first_rx(
            self,
            config.backends["my_radarr"],
            release,
        )

        self.assertEqual(db.nr_announcements(), 1)
        self.assertEqual(db.nr_snatches(), 2)

        misc.check_announced(
            self,
            config,
            release,
        )