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()
|