コード例 #1
0
ファイル: test_job.py プロジェクト: CURE-EMR/oca10
    def test_job_identity_key_func_exact(self):
        hasher = hashlib.sha1()
        hasher.update('test.queue.job')
        hasher.update('testing_method')
        hasher.update(str(sorted([])))
        hasher.update(unicode((1, 'foo')))
        hasher.update(unicode(sorted({'bar': 'baz'}.items())))
        expected_key = hasher.hexdigest()

        test_job_1 = Job(self.method,
                         args=[1, 'foo'],
                         kwargs={'bar': 'baz'},
                         identity_key=identity_exact)
        self.assertEqual(test_job_1.identity_key, expected_key)
        test_job_1.store()

        job1 = Job.load(self.env, test_job_1.uuid)
        self.assertEqual(job1.identity_key, expected_key)
コード例 #2
0
ファイル: test_job.py プロジェクト: OCA/queue
 def test_company_simple(self):
     company = self.env.ref("base.main_company")
     eta = datetime.now() + timedelta(hours=5)
     test_job = Job(
         self.method,
         args=("o", "k"),
         kwargs={"return_context": 1},
         priority=15,
         eta=eta,
         description="My description",
     )
     test_job.worker_pid = 99999  # normally set on "set_start"
     test_job.company_id = company.id
     test_job.store()
     job_read = Job.load(self.env, test_job.uuid)
     self.assertEqual(test_job.func, job_read.func)
     result_ctx = test_job.func(*tuple(test_job.args), **test_job.kwargs)
     self.assertEqual(result_ctx.get("allowed_company_ids"), company.ids)
コード例 #3
0
    def test_job_identity_key_func_exact(self):
        hasher = hashlib.sha1()
        hasher.update(b"test.queue.job")
        hasher.update(b"testing_method")
        hasher.update(str(sorted([])).encode("utf-8"))
        hasher.update(str((1, "foo")).encode("utf-8"))
        hasher.update(str(sorted({"bar": "baz"}.items())).encode("utf-8"))
        expected_key = hasher.hexdigest()

        test_job_1 = Job(
            self.method,
            args=[1, "foo"],
            kwargs={"bar": "baz"},
            identity_key=identity_exact,
        )
        self.assertEqual(test_job_1.identity_key, expected_key)
        test_job_1.store()

        job1 = Job.load(self.env, test_job_1.uuid)
        self.assertEqual(job1.identity_key, expected_key)
コード例 #4
0
 def test_company_complex(self):
     company1 = self.env.ref("base.main_company")
     company2 = company1.create({"name": "Queue job company"})
     companies = company1 | company2
     self.env.user.write({"company_ids": [(6, False, companies.ids)]})
     # Ensure the main company still the first
     self.assertEqual(self.env.user.company_id, company1)
     eta = datetime.now() + timedelta(hours=5)
     test_job = Job(
         self.method,
         args=("o", "k"),
         kwargs={"return_context": 1},
         priority=15,
         eta=eta,
         description="My description",
     )
     test_job.worker_pid = 99999  # normally set on "set_start"
     test_job.company_id = company2.id
     test_job.store()
     job_read = Job.load(self.env, test_job.uuid)
     self.assertEqual(test_job.func, job_read.func)
     result_ctx = test_job.func(*tuple(test_job.args), **test_job.kwargs)
     self.assertEqual(result_ctx.get("allowed_company_ids"), company2.ids)
コード例 #5
0
 def test_no_related_action(self):
     """ Job without related action """
     job = Job(self.model.testing_related_action__no)
     self.assertIsNone(job.related_action())
コード例 #6
0
 def test_return(self):
     """ Job with related action check if action returns correctly """
     job = Job(self.method)
     act_job, act_kwargs = job.related_action()
     self.assertEqual(act_job, job.db_record())
     self.assertEqual(act_kwargs, {})
コード例 #7
0
 def test_default_channel_no_xml(self):
     """Channel on job is root if there is no queue.job.function record"""
     test_job = Job(self.env["res.users"].browse)
     test_job.store()
     stored = test_job.db_record()
     self.assertEqual(stored.channel, "root")
コード例 #8
0
 def test_on_model_method(self):
     job_ = Job(self.env["test.queue.job"].testing_method)
     self.assertEqual(job_.model_name, "test.queue.job")
     self.assertEqual(job_.method_name, "testing_method")
コード例 #9
0
 def test_infinite_retryable_error(self):
     test_job = Job(self.method, kwargs={"raise_retry": True}, max_retries=0)
     self.assertEqual(test_job.retry, 0)
     with self.assertRaises(RetryableJobError):
         test_job.perform()
     self.assertEqual(test_job.retry, 1)
コード例 #10
0
 def test_perform_args(self):
     test_job = Job(self.method, args=("o", "k"), kwargs={"c": "!"})
     result = test_job.perform()
     self.assertEqual(result, (("o", "k"), {"c": "!"}))
コード例 #11
0
ファイル: test_job.py プロジェクト: HardGITer/odoo_modules
 def test_perform_args(self):
     test_job = Job(self.method, args=('o', 'k'), kwargs={'c': '!'})
     result = test_job.perform()
     self.assertEqual(result, (('o', 'k'), {'c': '!'}))
コード例 #12
0
ファイル: test_job.py プロジェクト: HardGITer/odoo_modules
 def test_on_model_method(self):
     job_ = Job(self.env['test.queue.job'].testing_method)
     self.assertEquals(job_.model_name, 'test.queue.job')
     self.assertEquals(job_.method_name, 'testing_method')
コード例 #13
0
 def test_new_job(self):
     """
     Create a job
     """
     test_job = Job(self.method)
     self.assertEqual(test_job.func.__func__, self.method.__func__)
コード例 #14
0
 def test_store(self):
     test_job = Job(self.method)
     test_job.store()
     stored = self.queue_job.search([("uuid", "=", test_job.uuid)])
     self.assertEqual(len(stored), 1)
コード例 #15
0
 def test_invalid_function(self):
     with self.assertRaises(TypeError):
         Job(1)
コード例 #16
0
 def test_set_failed(self):
     job_a = Job(self.method)
     job_a.set_failed(exc_info="failed test")
     self.assertEquals(job_a.state, FAILED)
     self.assertEquals(job_a.exc_info, "failed test")
コード例 #17
0
 def test_return_none(self):
     """ Job with related action returning None """
     # default action returns None
     job = Job(self.model.testing_related_action__return_none)
     self.assertIsNone(job.related_action())
コード例 #18
0
 def test_eta(self):
     """When an `eta` is datetime, it uses it"""
     now = datetime.now()
     method = self.env["res.users"].mapped
     job_a = Job(method, eta=now)
     self.assertEqual(job_a.eta, now)
コード例 #19
0
 def test_kwargs(self):
     """ Job with related action check if action propagates kwargs """
     job_ = Job(self.model.testing_related_action__kwargs)
     self.assertEqual(job_.related_action(), (job_.db_record(), {'b': 4}))
コード例 #20
0
ファイル: test_job.py プロジェクト: HardGITer/odoo_modules
 def _create_job(self):
     test_job = Job(self.method)
     test_job.store()
     stored = Job.db_record_from_uuid(self.env, test_job.uuid)
     self.assertEqual(len(stored), 1)
     return stored