4
4
from mock import Mock
5
5
from mock import patch
7
from charmworld.jobs.store import run
7
from charmworld.jobs.worker import check_charms_store
8
8
from charmworld.testing import get_bad_mock
9
9
from charmworld.testing import JobTestBase
12
12
class TestStoreJob(JobTestBase):
14
@patch('charmworld.jobs.store.check_store', get_bad_mock())
14
# Patch has to happen along `worker` path rather than the `ingest` module
15
# b/c of Mock/import interactions.
16
@patch('charmworld.jobs.worker.check_store', get_bad_mock())
15
17
def test_store_charms_error(self):
16
18
handler = self.get_handler("charm.store")
17
19
charm_data = {'branch_dir': 'foo', 'branch_spec': 'bar'}
18
20
(in_queue, out_queue) = self.get_mongo_queues(data=charm_data)
19
run(in_queue, out_queue)
21
check_charms_store(in_queue, out_queue)
20
22
log_messages = [record.getMessage() for record in handler.buffer]
21
23
err_msg = ("store error on {u'branch_spec': u'bar', u'branch_dir': "
22
24
"u'foo'}: Exception forced by mock.")
23
25
self.assertIn(err_msg, log_messages)
25
@patch('charmworld.jobs.store.check_store', Mock())
27
# Patch has to happen along `worker` path rather than the `ingest` module
28
# b/c of Mock/import interactions.
29
@patch('charmworld.jobs.worker.check_store', Mock())
26
30
def test_store_charms_queue(self):
27
31
charm_data = {'branch_dir': 'foo', 'branch_spec': 'bar'}
28
32
(in_queue, out_queue) = self.get_mongo_queues(data=charm_data)
29
run(in_queue, out_queue)
33
check_charms_store(in_queue, out_queue)
30
34
item = out_queue.next()
32
36
{'branch_dir': 'foo', 'branch_spec': 'bar'}, item.payload)