def test_read(self): eta = datetime.now() + timedelta(hours=5) test_job = Job(func=dummy_task_args, model_name='res.users', args=('o', 'k'), kwargs={'c': '!'}, priority=15, eta=eta, description="My description") test_job.user_id = 1 test_job.company_id = self.env.ref("base.main_company").id storage = OdooJobStorage(self.session) storage.store(test_job) job_read = storage.load(test_job.uuid) self.assertEqual(test_job.uuid, job_read.uuid) self.assertEqual(test_job.model_name, job_read.model_name) self.assertEqual(test_job.func, job_read.func) self.assertEqual(test_job.args, job_read.args) self.assertEqual(test_job.kwargs, job_read.kwargs) self.assertEqual(test_job.func_name, job_read.func_name) self.assertEqual(test_job.func_string, job_read.func_string) self.assertEqual(test_job.description, job_read.description) self.assertEqual(test_job.state, job_read.state) self.assertEqual(test_job.priority, job_read.priority) self.assertEqual(test_job.exc_info, job_read.exc_info) self.assertEqual(test_job.result, job_read.result) self.assertEqual(test_job.user_id, job_read.user_id) self.assertEqual(test_job.company_id, job_read.company_id) delta = timedelta(seconds=1) # DB does not keep milliseconds self.assertAlmostEqual(test_job.date_created, job_read.date_created, delta=delta) self.assertAlmostEqual(test_job.date_started, job_read.date_started, delta=delta) self.assertAlmostEqual(test_job.date_enqueued, job_read.date_enqueued, delta=delta) self.assertAlmostEqual(test_job.date_done, job_read.date_done, delta=delta) self.assertAlmostEqual(test_job.eta, job_read.eta, delta=delta) test_date = datetime(2015, 3, 15, 21, 7, 0) job_read.date_enqueued = test_date job_read.date_started = test_date job_read.date_done = test_date storage.store(job_read) job_read = storage.load(test_job.uuid) self.assertAlmostEqual(job_read.date_started, test_date, delta=delta) self.assertAlmostEqual(job_read.date_enqueued, test_date, delta=delta) self.assertAlmostEqual(job_read.date_done, test_date, delta=delta)
def test_unicode(self): test_job = Job(func=dummy_task_args, model_name='res.users', args=(u'öô¿‽', u'ñě'), kwargs={'c': u'ßø'}, priority=15, description=u"My dé^Wdescription") test_job.user_id = 1 storage = OdooJobStorage(self.session) storage.store(test_job) job_read = storage.load(test_job.uuid) self.assertEqual(test_job.args, job_read.args) self.assertEqual(job_read.args, ('res.users', u'öô¿‽', u'ñě')) self.assertEqual(test_job.kwargs, job_read.kwargs) self.assertEqual(job_read.kwargs, {'c': u'ßø'}) self.assertEqual(test_job.description, job_read.description) self.assertEqual(job_read.description, u"My dé^Wdescription")
def test_accented_bytestring(self): test_job = Job(func=dummy_task_args, model_name='res.users', args=('öô¿‽', 'ñě'), kwargs={'c': 'ßø'}, priority=15, description="My dé^Wdescription") test_job.user_id = 1 storage = OdooJobStorage(self.session) storage.store(test_job) job_read = storage.load(test_job.uuid) self.assertEqual(test_job.args, job_read.args) self.assertEqual(job_read.args, ('res.users', 'öô¿‽', 'ñě')) self.assertEqual(test_job.kwargs, job_read.kwargs) self.assertEqual(job_read.kwargs, {'c': 'ßø'}) # the job's description has been created as bytestring but is # decoded to utf8 by the ORM so make them comparable self.assertEqual(test_job.description, job_read.description.encode('utf8')) self.assertEqual(job_read.description, "My dé^Wdescription".decode('utf8'))