forked from p15670423/monkey
46 lines
1.3 KiB
Python
46 lines
1.3 KiB
Python
|
# -*- coding: UTF-8 -*-
|
||
|
# NOTE: Launch all tests with `nosetests` command from chaos_monkey dir.
|
||
|
|
||
|
import json
|
||
|
import unittest
|
||
|
|
||
|
from mock import Mock, patch
|
||
|
|
||
|
import control
|
||
|
|
||
|
from config import GUID
|
||
|
|
||
|
|
||
|
class ReportConfigErrorTestCase(unittest.TestCase):
|
||
|
"""
|
||
|
When unknown config variable received form the island server, skip it and report config
|
||
|
error back to the server.
|
||
|
"""
|
||
|
|
||
|
config_response = Mock(json=Mock(return_value={'config': {'blah': 'blah'}}))
|
||
|
|
||
|
def teardown(self):
|
||
|
patch.stopall()
|
||
|
|
||
|
def test_config(self):
|
||
|
patch('control.requests.patch', Mock()).start()
|
||
|
patch('control.WormConfiguration', Mock(current_server='127.0.0.1:123')).start()
|
||
|
|
||
|
# GIVEN the server with uknown config variable
|
||
|
patch('control.requests.get', Mock(return_value=self.config_response)).start()
|
||
|
|
||
|
# WHEN monkey tries to load config from server
|
||
|
control.ControlClient.load_control_config()
|
||
|
|
||
|
# THEN she reports config error back to the server
|
||
|
control.requests.patch.assert_called_once_with(
|
||
|
"https://127.0.0.1:123/api/monkey/%s" % GUID,
|
||
|
data=json.dumps({'config_error': True}),
|
||
|
headers={'content-type': 'application/json'},
|
||
|
verify=False,
|
||
|
proxies=control.ControlClient.proxies)
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
unittest.main()
|