def test_FeedMissingChannelElement_RaisesRSSFormatError(
            self, stub_read_rssfeed):
        stub_read_rssfeed.return_value = \
            '<?xml version="1.0" encoding="UTF-8"?>' \
            '<rss version="2.0" xmlns:tv="http://showrss.info">' \
                '<title>showRSS feed: Name</title>' \
            '</rss>'

        with pytest.raises(RSSFormatError) as error:
            get_name(None)
        assert str(error.value) == "RSS feed is missing required elements"
    def test_FeedMissingTheTitlePrefix_RaisesRSSFormatError(
            self, stub_read_rssfeed):
        stub_read_rssfeed.return_value = \
            '<?xml version="1.0" encoding="UTF-8"?>' \
            '<rss version="2.0" xmlns:tv="http://showrss.info">' \
                '<channel>' \
                    '<title>Name</title>' \
                '</channel>' \
            '</rss>'

        with pytest.raises(RSSFormatError) as error:
            get_name(None)
        assert str(error.value) == "RSS feed is missing prefix from the " \
                                   "tv show title"
    def test_CompleteFeedWithOneItemAndTitleName_Name(self, stub_read_rssfeed):
        rssfeed = '<?xml version="1.0" encoding="UTF-8"?>' \
                  '<rss version="2.0" xmlns:tv="http://showrss.info">' \
                    '<channel>' \
                        '<title>showRSS feed: Name</title>' \
                        '<link>http://showrss.info</link><ttl>30</ttl>' \
                        '<description>showRSS show feed for Castle (2009)</description>' \
                        '<item>' \
                            '<title>Castle (2009) 8x05</title>' \
                            '<link>magnet:?xt=urn:btih:E3A6707164B53C132E39FE0724DC5FDDFAA8E575&amp;dn=Castle+2009+S08E05+720p+HDTV+X264+DIMENSION&amp;tr=udp://tracker.coppersurfer.tk:6969/announce&amp;tr=udp://tracker.leechers-paradise.org:6969&amp;tr=udp://open.demonii.com:1337</link>' \
                            '<guid isPermaLink="false">a0ce46e33c916756208b92af7392f9aa2a960496</guid>' \
                            '<pubDate>Tue, 20 Oct 2015 02:05:03 +0000</pubDate>' \
                            '<description>New episode: Castle 2009 S08E05 HDTV X264 DIMENSION. Link: &lt;a href=&quot;magnet:?xt=urn:btih:E3A6707164B53C132E39FE0724DC5FDDFAA8E575&amp;dn=Castle+2009+S08E05+720p+HDTV+X264+DIMENSION&amp;tr=udp://tracker.coppersurfer.tk:6969/announce&amp;tr=udp://tracker.leechers-paradise.org:6969&amp;tr=udp://open.demonii.com:1337&quot;&gt;magnet:?xt=urn:btih:E3A6707164B53C132E39FE0724DC5FDDFAA8E575&amp;dn=Castle+2009+S08E05+720p+HDTV+X264+DIMENSION&amp;tr=udp://tracker.coppersurfer.tk:6969/announce&amp;tr=udp://tracker.leechers-paradise.org:6969&amp;tr=udp://open.demonii.com:1337&lt;/a&gt;</description>' \
                            '<tv:show_id>53</tv:show_id>' \
                            '<tv:show_name>Castle (2009)</tv:show_name>' \
                            '<tv:episode_id>927</tv:episode_id>' \
                            '<tv:raw_title>Castle 2009 S08E05 HDTV X264 DIMENSION</tv:raw_title>' \
                            '<tv:info_hash>E3A6707164B53C132E39FE0724DC5FDDFAA8E575</tv:info_hash>' \
                            '<enclosure url="magnet:?xt=urn:btih:E3A6707164B53C132E39FE0724DC5FDDFAA8E575&amp;dn=Castle+2009+S08E05+720p+HDTV+X264+DIMENSION&amp;tr=udp://tracker.coppersurfer.tk:6969/announce&amp;tr=udp://tracker.leechers-paradise.org:6969&amp;tr=udp://open.demonii.com:1337" length="0" type="application/x-bittorrent" />' \
                        '</item>' \
                    '</channel>' \
                  '</rss>'
        stub_read_rssfeed.return_value = rssfeed

        assert get_name(None) == 'Name'
    def test_CorrectFeedWithTitleName_Name(self, stub_read_rssfeed):
        stub_read_rssfeed.return_value = \
            '<?xml version="1.0" encoding="UTF-8"?>' \
            '<rss version="2.0" xmlns:tv="http://showrss.info">' \
                '<channel>' \
                    '<title>showRSS feed: Name</title>' \
                '</channel>' \
            '</rss>'

        assert get_name(None) == 'Name'
Beispiel #5
0
 def add_tvshow(self, tvshow_id: int):
     tvshow_name = showrss.get_name(tvshow_id)
     self.database.put_tvshow(TVShow(tvshow_id, tvshow_name))