def test_start_stop_backwards_compat(): site = brozzler.Site(None, {'seed': 'http://example.com/'}) assert len(site.starts_and_stops) == 1 assert site.starts_and_stops[0]['start'] assert site.starts_and_stops[0]['stop'] is None assert not 'start_time' in site site = brozzler.Site(None, { 'seed': 'http://example.com/', 'start_time': datetime.datetime(2017,1,1)}) assert len(site.starts_and_stops) == 1 assert site.starts_and_stops[0]['start'] == datetime.datetime(2017, 1, 1) assert site.starts_and_stops[0]['stop'] is None assert not 'start_time' in site job = brozzler.Job(None, {'seeds': [{'url':'https://example.com/'}]}) assert job.starts_and_stops[0]['start'] assert job.starts_and_stops[0]['stop'] is None assert not 'started' in job assert not 'finished' in job job = brozzler.Job(None, { 'seeds': [{'url':'https://example.com/'}], 'started': datetime.datetime(2017, 1, 1), 'finished': datetime.datetime(2017, 1, 2)}) assert job.starts_and_stops[0]['start'] == datetime.datetime(2017, 1, 1) assert job.starts_and_stops[0]['stop'] == datetime.datetime(2017, 1, 2) assert not 'started' in job assert not 'finished' in job
def job(self, id): if id is None: return None result = self.r.table("jobs").get(id).run() if result: return brozzler.Job(**result) else: return None
def active_jobs(self): results = self.rr.table("jobs").filter({"status": "ACTIVE"}).run() for result in results: yield brozzler.Job(self.rr, result)
def test_field_defaults(): rr = doublethink.Rethinker('localhost', db='ignoreme') # page brozzler.Page.table_ensure(rr) page = brozzler.Page(rr, {'hops_from_seed': 3}) assert page.hops_from_seed == 3 assert page.id assert page.brozzle_count == 0 page.save() assert page.hops_from_seed == 3 assert page.id assert page.brozzle_count == 0 qage = brozzler.Page.load(rr, page.id) assert qage.hops_from_seed == 3 assert qage.id == page.id assert qage.brozzle_count == 0 qage.save() assert qage.hops_from_seed == 3 assert qage.id == page.id assert qage.brozzle_count == 0 qage.refresh() assert qage.hops_from_seed == 3 assert qage.id == page.id assert qage.brozzle_count == 0 # site brozzler.Site.table_ensure(rr) site = brozzler.Site(rr, {'seed': 'http://example.com/'}) assert site.id is None assert site.scope assert site.scope['surt'] == 'http://(com,example,)/' site.save() assert site.id assert site.scope tite = brozzler.Site.load(rr, site.id) assert tite.id == site.id assert tite.scope == site.scope tite.save() assert tite.id == site.id assert tite.scope == site.scope tite.refresh() assert tite.id == site.id assert tite.scope == site.scope # job brozzler.Job.table_ensure(rr) job = brozzler.Job(rr, {'status': 'WHUUUT'}) assert job.status == 'WHUUUT' assert job.id is None assert job.starts_and_stops job.save() assert job.status == 'WHUUUT' assert job.id assert job.starts_and_stops kob = brozzler.Job.load(rr, job.id) assert kob.status == 'WHUUUT' assert kob.id assert kob.starts_and_stops kob.save() assert kob.status == 'WHUUUT' assert kob.id assert kob.starts_and_stops kob.refresh() assert kob.status == 'WHUUUT' assert kob.id assert kob.starts_and_stops