Beispiel #1
0
class ParsingTestCase(RemoteTestCase):

    def setUp(self):
        self.torrents = Search(self.url, 'tpb afk')

    def test_items(self):
        self.assertEqual(len(list(self.torrents.items())), 30)
        self.assertEqual(len(list(iter(self.torrents))), 30)

    def test_creation_dates(self):
        """
        Make sure torrents aren't lazily created.
        """
        alpha = time.time()
        # Create torrents
        torrents = self.torrents.items()
        time.sleep(1)
        # If they were lazily evaluated, they would be created now
        diff = next(torrents)._created[1] - alpha
        self.assertTrue(diff > 1)

    def test_torrent_rows(self):
        request = urlopen(str(self.torrents.url))
        document = html.parse(request)
        rows = self.torrents._get_torrent_rows(document.getroot())
        self.assertEqual(len(rows), 30)

    def test_torrent_build(self):
        for torrent in self.torrents.items():
            if torrent.title == 'TPB.AFK.2013.720p.h264-SimonKlose' and\
               torrent.user == 'SimonKlose':
                self.assertEqual(torrent.user_status, 'VIP')
                self.assertTrue(torrent.comments >= 313)
                self.assertEqual(torrent.has_cover, 'Yes')
                break
Beispiel #2
0
class ParsingTestCase(RemoteTestCase):
    def setUp(self):
        self.torrents = Search(self.url, 'tpb afk')

    def test_items(self):
        self.assertEqual(len(list(self.torrents.items())), 30)
        self.assertEqual(len(list(iter(self.torrents))), 30)

    def test_creation_dates(self):
        """
        Make sure torrents aren't lazily created.
        """
        alpha = time.time()
        # Create torrents
        torrents = self.torrents.items()
        time.sleep(1)
        # If they were lazily evaluated, they would be created now
        diff = next(torrents)._created[1] - alpha
        self.assertTrue(diff > 1)

    def test_torrent_rows(self):
        request = urlopen(str(self.torrents.url))
        document = html.parse(request)
        rows = self.torrents._get_torrent_rows(document.getroot())
        self.assertEqual(len(rows), 30)

    def test_torrent_build(self):
        pass
Beispiel #3
0
class TorrentTestCase(RemoteTestCase):

    def setUp(self):
        self.torrents = Search(self.url, 'tpb afk')

    def assertEqualDatetimes(self, *datetimes):
        datetimes = [d.replace(microsecond=0) for d in datetimes]
        return self.assertEqual(*datetimes)

    def test_created_timestamp_parse(self):
        for torrent in self.torrents.items():
            torrent.created
        torrent._created = ('1 sec ago', time.time())
        self.assertEqualDatetimes(
            torrent.created, datetime.now() - timedelta(seconds=1))
        torrent._created = ('1 min ago', time.time())
        self.assertEqualDatetimes(
            torrent.created, datetime.now() - timedelta(minutes=1))
        torrent._created = ('1 hour ago', time.time())
        self.assertEqualDatetimes(
            torrent.created, datetime.now() - timedelta(hours=1))
        torrent._created = ('Today', time.time())
        self.assertEqual(torrent.created.date(), datetime.now().date())
        torrent._created = ('Y-day', time.time())
        self.assertEqual(torrent.created.date(),
                         (datetime.now() - timedelta(days=1)).date())
        torrent._created = ('1 sec ago', time.time() - 60 * 60 * 24)
        self.assertEqualDatetimes(torrent.created, datetime.now() -
                                  timedelta(days=1, seconds=1))

    def test_info(self):
        for torrent in self.torrents.items():
            self.assertNotEqual('', torrent.info.strip())

    def test_files(self):
        for torrent in self.torrents.items():
            self.assertTrue(len(torrent.files) > 0)
Beispiel #4
0
class ParsingTestCase(RemoteTestCase):
    def setUp(self):
        self.torrents = Search(self.url, 'breaking bad')

    def test_items(self):
        self.assertEqual(len(list(self.torrents.items())), 30)
        self.assertEqual(len(list(iter(self.torrents))), 30)

    def test_torrent_rows(self):
        request = urlopen(str(self.torrents.url))
        content = request.read()
        page = BeautifulSoup(content)
        rows = self.torrents._get_torrent_rows(page)
        self.assertEqual(len(rows), 30)

    def test_torrent_build(self):
        pass
Beispiel #5
0
class TorrentTestCase(RemoteTestCase):
    def setUp(self):
        self.torrents = Search(self.url, 'breaking bad')

    def assertEqualDatetimes(self, *datetimes):
        datetimes = [ d.replace(microsecond=0) for d in datetimes ]
        return self.assertEqual(*datetimes)

    def test_created_timestamp_parse(self):
        for torrent in self.torrents.items():
            torrent.created
        torrent._created = '1 sec ago'
        self.assertEqualDatetimes(torrent.created, datetime.now() - timedelta(seconds=1))
        torrent._created = '1 min ago'
        self.assertEqualDatetimes(torrent.created, datetime.now() - timedelta(minutes=1))
        torrent._created = '1 hour ago'
        self.assertEqualDatetimes(torrent.created, datetime.now() - timedelta(hours=1))
        torrent._created = 'Today'
        self.assertEqual(torrent.created.date(), datetime.now().date())