Exemple #1
0
 def setUp(self):
     """
     setUp
     """
     self.db_name = 'crypto_task_test'
     self.serverconfig = ServerConfig(self.db_name)
     self.serverconfig.get_rs().flush_all()
Exemple #2
0
class CryptoTaskTest(unittest.TestCase):
    """
    CryptoboTestCase
    """

    def setUp(self):
        """
        setUp
        """
        self.db_name = 'crypto_task_test'
        self.serverconfig = ServerConfig(self.db_name)
        self.serverconfig.get_rs().flush_all()

    def test_set_get_data(self):
        """
        test_set_get_data
        """
        gds_delete_namespace(self.serverconfig)
        task = AddNumers(self.serverconfig, "user_1234")
        task.set_data("hello", "world")
        self.assertEqual({'arg0': 'hello', 'arg1': 'world'}, task.m_process_data_p64s)
        task.set_data(v1="hello", v2="world")
        self.assertEqual({'v1': 'hello', 'v2': 'world'}, task.m_process_data_p64s)
        task.set_data("foo", "bar", v1="hello", v2="world")
        self.assertEqual({'arg0': 'foo', 'arg1': 'bar', 'v2': 'world', 'v1': 'hello'}, task.m_process_data_p64s)

        def f(p1, p2, v2='', v1=''):
            """
            @type p1: str
            @type p2: str
            @type v2: str
            @type v1: str
            """
            self.assertEqual("foobarhelloworld", p1 + p2 + v1 + v2)

        args2, kwargs2 = task.get_data_as_param()
        apply(f, args2, kwargs2)
        self.assertEqual("hello", task.get_data("v1"))

        with self.assertRaisesRegexp(TaskException, "get_data, key not found"):
            task.get_data("helli")

        with self.assertRaisesRegexp(TaskException, "set_data, no params given"):
            task.set_data()

        with self.assertRaisesRegexp(TaskException, "get_data_as_param, no data set"):
            task.get_data_as_param()
        a = 1
        b = ["hello", "world"]
        c = 3.0
        d = [{"foo": "bar"}, 2]
        e = "hello"
        task.set_data(self.serverconfig, a, b, c, d, e)
        task.save()
        task2 = AddNumers(self.serverconfig, "user_1234")
        task2.load(object_id=task.object_id)
        sc, a1, b1, c1, d1, e1 = task2.get_data_as_param(True)
        self.assertEqual(a, a1)
        self.assertEqual(b, b1)
        self.assertEqual(c, c1)
        self.assertEqual(d, d1)
        self.assertEqual(e, e1)
        self.assertEqual(self.serverconfig.get_namespace(), sc.get_namespace())

    def test_var(self):
        """
        test_var
        """
        task = AddNumers(self.serverconfig)

        with self.assertRaisesRegexp(TaskException, "start: no crypto_user_object_id set"):
            task.start(1, 1)

        task = AddNumers(self.serverconfig, "user_1234")

        with self.assertRaisesRegexp(TaskException, "get_data, no data set"):
            task.get_data("foo")

        with self.assertRaisesRegexp(TaskException, "get_data_as_param, no data set"):
            task.get_data_as_param()

    def test_task_run_not_implemented(self):
        """
        test_task_run_not_implemented
        """
        task = CryptoTask(self.serverconfig, "user_1234")

        with self.assertRaisesRegexp(TaskException, "no run method on class implemented"):
            task.execute()

    def test_task_run(self):
        """
        test_task_run
        """
        task = AddNumers(self.serverconfig, "user_1234")
        result = task.run(5, 6)
        self.assertEqual(result, 11)
        self.assertEqual(task.m_result, '')
        self.assertEqual(task.execution_time(), 0)

        with self.assertRaisesRegexp(TaskException, "total_execution_time: m_stop_execution not set"):
            task.total_execution_time()

        with self.assertRaisesRegexp(TaskException, "callable not dict"):
            #noinspection PyTypeChecker
            task.execute_callable(None)

    def test_task_execute(self):
        """
        test_task_execute
        """
        task = AddNumers(self.serverconfig, "user_1234")
        task.execute(5, 6)
        task.execute(5, 6)
        self.assertEqual(task.m_result, 11)
        self.assertTrue(task.total_execution_time() > 0)
        self.assertTrue(task.execution_time() > 0)
        self.assertTrue(task.life_time() > 0)

    def test_task_execute_save(self):
        """
        test_task_execute_save
        """
        task = AddNumers(self.serverconfig, "user_1234")
        task.start(5, 6)
        task2 = CryptoTask(self.serverconfig, "user_1234")
        task2.load(object_id=task.object_id)
        task2.execute()
        self.assertEqual(task2.m_result, 11)
        task3 = CryptoTask(self.serverconfig, "user_1234")
        task3.load(object_id=task.object_id)
        self.assertEqual(task3.m_result, 11)

    def test_task_execute_join(self):
        """
        test_task_execute_join
        """
        task = AddNumers(self.serverconfig, "user_1234")
        task.start(5, 6)
        task2 = CryptoTask(self.serverconfig, "user_1234")
        task2.load(object_id=task.object_id)
        task2.execute()
        with self.assertRaisesRegexp(TaskException, "task not started"):
            task2.join()
        self.assertEqual(task2.m_result, 11)
        task3 = CryptoTask(self.serverconfig, "user_1234")

        with self.assertRaisesRegexp(TaskException, "could not load task"):
            task3.load(object_id=task.object_id)

    def test_task_execute_join_time_out(self):
        """
        test_task_execute_join2
        """
        task = AddNumers(self.serverconfig, "user_1234")
        task.start(5, 6)

        with self.assertRaisesRegexp(TaskTimeOut, "crypto_task_add-numers timed out"):
            task.join(max_wait_seconds=0.3)