|
16 | 16 | import math |
17 | 17 | import unittest |
18 | 18 |
|
19 | | -import mock |
20 | | - |
21 | 19 | import google.cloud._helpers |
22 | 20 | from google.cloud.bigquery.dbapi import _helpers |
23 | 21 | from google.cloud.bigquery.dbapi import exceptions |
24 | 22 |
|
25 | 23 |
|
26 | | -class Test_wait_for_job(unittest.TestCase): |
27 | | - |
28 | | - def _mock_job(self): |
29 | | - from google.cloud.bigquery import job |
30 | | - mock_job = mock.create_autospec(job.QueryJob) |
31 | | - mock_job.state = 'RUNNING' |
32 | | - mock_job._mocked_iterations = 0 |
33 | | - |
34 | | - def mock_reload(): |
35 | | - mock_job._mocked_iterations += 1 |
36 | | - if mock_job._mocked_iterations >= 2: |
37 | | - mock_job.state = 'DONE' |
38 | | - |
39 | | - mock_job.reload.side_effect = mock_reload |
40 | | - return mock_job |
41 | | - |
42 | | - def _call_fut(self, job): |
43 | | - from google.cloud.bigquery.dbapi._helpers import wait_for_job |
44 | | - with mock.patch('time.sleep'): |
45 | | - wait_for_job(job) |
46 | | - |
47 | | - def test_wo_error(self): |
48 | | - mock_job = self._mock_job() |
49 | | - mock_job.error_result = None |
50 | | - self._call_fut(mock_job) |
51 | | - self.assertEqual('DONE', mock_job.state) |
52 | | - |
53 | | - def test_w_error(self): |
54 | | - from google.cloud.bigquery.dbapi import exceptions |
55 | | - mock_job = self._mock_job() |
56 | | - mock_job.error_result = {'reason': 'invalidQuery'} |
57 | | - self.assertRaises(exceptions.DatabaseError, self._call_fut, mock_job) |
58 | | - self.assertEqual('DONE', mock_job.state) |
59 | | - |
60 | | - |
61 | 24 | class TestQueryParameters(unittest.TestCase): |
62 | 25 |
|
63 | 26 | def test_scalar_to_query_parameter(self): |
|
0 commit comments