Example #1
0
    def test_heartbeat_create(self, mock_table_service, mock_os):
        # Arrange
        table_name = 'servers'

        request = func.HttpRequest(method='POST',
                                   url='/api/heartbeat',
                                   body=json.dumps({
                                       'ip': '192.168.1.1',
                                       'port': '1337',
                                       'status': 'ready',
                                       'region': 'eastus'
                                   }).encode('utf8'))

        # Act
        result = main(request)
        server_id = json.loads(result.get_body()).get('server_id')
        inserted_data = mock_table_service(
        ).insert_or_replace_entity.call_args.args[1]

        # Assert
        assert result.status_code == 200
        assert server_id

        mock_table_service().create_table.assert_called_with(
            table_name, fail_on_exist=False)
        mock_table_service().insert_or_replace_entity.assert_called_with(
            table_name, mock.ANY)

        assert inserted_data['PartitionKey'] == 'eastus'
        assert inserted_data['ip'] == '192.168.1.1'
        assert inserted_data['port'] == '1337'
        assert inserted_data['status'] == 'ready'
        assert inserted_data['lastHeartbeatTime']
Example #2
0
    def test_missing_ip(self, mock_table_service, mock_os):
        # Arrange
        table_name = 'servers'
        server_id = 'test_id'

        request = func.HttpRequest(method='POST',
                                   url='/api/heartbeat',
                                   body=json.dumps({
                                       'port': '1337',
                                       'status': 'ready',
                                       'region': 'eastus'
                                   }).encode('utf8'))

        # Act
        result = main(request)
        message = json.loads(result.get_body()).get('messages')[0]

        # Assert
        mock_table_service().create_table.assert_not_called()
        mock_table_service().insert_or_replace_entity.assert_not_called()
        assert result.status_code == 400
        assert 'ip' in message