def test_should_set_configuration(self): configuration = 'configuration' receiver = Receiver() receiver.set_configuration(configuration) self.assertEquals(configuration, receiver.configuration)
def test_should_raise_exception_when_target_directory_does_not_exist(self, mock_exists): mock_exists.return_value = False receiver = Receiver() configuration = {'hostname': 'hostname', 'targets_directory': '/etc/yadtshell/targets/'} receiver.set_configuration(configuration) self.assertRaises( ReceiverException, receiver.get_target_directory, 'spargel')
def test_should_initialize_broadcaster_when_connecting_broadcaster(self, mock_wamb): configuration = {'broadcaster_host': 'broadcaster-host', 'broadcaster_port': 1234} receiver = Receiver() receiver.set_configuration(configuration) receiver._connect_broadcaster() self.assertEquals( call('broadcaster-host', 1234, 'yadtreceiver'), mock_wamb.call_args)
def test_write_metrics_to_file_is_noop_with_no_metrics_directory(self, path_, open_): configuration = {'metrics_directory': None, 'metrics_file': None, } yrc = Receiver() yrc.set_configuration(configuration) yrc.write_metrics_to_file() self.assertFalse(open_.called) self.assertFalse(path_.called)
def test_should_join_target_name_with_targets_directory(self, mock_exists): mock_exists.return_value = True receiver = Receiver() configuration = {'hostname': 'hostname', 'targets_directory': '/etc/yadtshell/targets/'} receiver.set_configuration(configuration) actual_target_directory = receiver.get_target_directory('spargel') self.assertEquals( '/etc/yadtshell/targets/spargel', actual_target_directory)
def test_should_add_session_handler_to_broadcaster_when_connecting_broadcaster(self, mock_wamb): receiver = Receiver() configuration = {'broadcaster_host': 'broadcasterhost', 'broadcaster_port': 1234} receiver.set_configuration(configuration) mock_broadcaster_client = Mock() mock_wamb.return_value = mock_broadcaster_client receiver._connect_broadcaster() self.assertEquals( call(receiver.onConnect), mock_broadcaster_client.addOnSessionOpenHandler.call_args)
def test_should_exit_when_no_target_configured(self, mock_exit, mock_log): receiver = Receiver() configuration = ConfigurationDict(allowed_targets=set(), broadcaster_host='broadcaster_host', broadcaster_port=1234) receiver.set_configuration(configuration) mock_broadcaster_client = Mock() receiver.broadcaster = mock_broadcaster_client receiver.onConnect() self.assertEquals(call(1), mock_exit.call_args)
def test_should_subscribe_to_target_from_configuration_when_connected(self): receiver = Receiver() mock_broadcaster_client = Mock() receiver.broadcaster = mock_broadcaster_client configuration = ConfigurationDict(allowed_targets=set(['devabc123']), broadcaster_host='broadcaster_host', broadcaster_port=1234) receiver.set_configuration(configuration) receiver.onConnect() self.assertEquals(call(receiver.onEvent, 'devabc123'), mock_broadcaster_client.client.subscribe.call_args)
def test_write_metrics_to_file(self, path_, open_): # initialize a receiver with given configuration configuration = {'metrics_directory': '/tmp/metrics', 'metrics_file': '/tmp/metrics/yrc.metrics' } yrc = Receiver() yrc.set_configuration(configuration) open_.return_value = MagicMock(spec=file) path_.return_value = True yrc.write_metrics_to_file() open_.assert_called_once_with('/tmp/metrics/yrc.metrics', 'w') file_handle = open_.return_value.__enter__.return_value file_handle.write.assert_called_once_with('foo=42\n')
def test_should_call_start_logging_when_initializing_twisted_logging(self, mock_log, mock_log_file_class): receiver = Receiver() receiver.set_configuration({'log_filename': 'log/file.log', 'targets': set(['devabc123']), 'broadcaster_host': 'broadcaster_host', 'broadcaster_port': 1234}) mock_log_file = Mock(LogFile) mock_log_file_class.fromFullPath.return_value = mock_log_file receiver.initialize_twisted_logging() self.assertEqual( call('log/file.log', rotateLength=20000000, maxRotatedFiles=10), mock_log_file_class.fromFullPath.call_args) self.assertEquals(call(mock_log_file), mock_log.startLogging.call_args)
def test_should_subscribe_to_targets_from_configuration_in_alphabetical_order_when_connected(self): receiver = Receiver() mock_broadcaster_client = Mock() receiver.broadcaster = mock_broadcaster_client configuration = ConfigurationDict(allowed_targets=set(['dev01', 'dev02', 'dev03']), broadcaster_host='broadcaster_host', broadcaster_port=1234) receiver.set_configuration(configuration) receiver.onConnect() self.assertEquals( [call(receiver.onEvent, 'dev01'), call(receiver.onEvent, 'dev02'), call(receiver.onEvent, 'dev03')], mock_broadcaster_client.client.subscribe.call_args_list)