Exemple #1
0
def test_update_command_definitions():
    # ToDo: Find a better way to test w/o deeply-nested mocks.
    api_mock = Mock(spec=ModelingAPI)
    inner_api_mock = Mock(spec=ScriptingAPI)
    mutations_mock = Mock(spec=Mutations)
    inner_api_mock.mutations = mutations_mock
    api_mock.scripting_api = inner_api_mock
    mutations_mock.update_command_definitions.return_value = {
        'success': True,
        'notice': 'Command definitions updated',
        'errors': []
    }

    sat = Satellite(api_mock, id=1, name="AQUA")

    new_defs = '''
    {
    "definitions": {
        "ping": {
        "display_name": "Ping",
        "description": "A simple ping. The Gateway should pretend to contact the satellite and return a pong.",
        "tags": [
            "testing",
            "operations"
        ],
        "fields": []
        }
    }
    }
    '''

    sat.update_command_definitions(new_defs)

    mutations_mock.update_command_definitions.assert_called()
Exemple #2
0
def test_next_pass_method_raises_not_found_error_when_no_more_passes_exist(
        pass_result):
    api_mock = Mock(spec=ModelingAPI)
    inner_api_mock = create_autospec(ScriptingAPI)
    api_mock.scripting_api = inner_api_mock
    inner_api_mock.system.return_value = pass_result

    sat = Satellite(api_mock, id=1, name="Sat E. Lite")

    with pytest.raises(PassNotFoundError):
        sat.next_pass(current_unix_time_ms=9999999999999)
Exemple #3
0
def test_next_pass_method_with_scheduled_passes(pass_result):
    api_mock = Mock(spec=ModelingAPI)
    inner_api_mock = create_autospec(ScriptingAPI)
    api_mock.scripting_api = inner_api_mock
    inner_api_mock.passes.return_value = pass_result

    sat = Satellite(api_mock, id=1, name="Sat E. Lite")
    now = 1637068239755
    next = sat.next_pass(current_unix_time_ms=now, scheduled=True)

    assert next
    assert next.start > now
    assert next.id == "10611"
 def satellites(self):
     return_fields = [
         "id", "name", "type", "noradId", "tle", "enableTleAutoUpdate",
         "lastTelemetryAt", "settings", "defaultGatewayId"
     ]
     result = self.api.scripting_api.satellites(return_fields=return_fields)
     return [Satellite(modeling_api=self.api, **x["node"]) for x in result]
 def satellite(self, id=None, name=None):
     return_fields = [
         "id", "name", "type", "noradId", "tle", "enableTleAutoUpdate",
         "lastTelemetryAt", "settings", "defaultGatewayId"
     ]
     result = self.api.scripting_api.system(id,
                                            name,
                                            return_fields=return_fields)
     return Satellite(modeling_api=self.api, **result)
Exemple #6
0
def test_get_command_definitions(cmd_defs_response):
    api_mock = Mock(spec=ModelingAPI)
    inner_api_mock = create_autospec(ScriptingAPI)
    api_mock.scripting_api = inner_api_mock
    inner_api_mock.command_definitions.return_value = cmd_defs_response

    sat = Satellite(api_mock, id=1, name="AQUA")

    defs = sat.command_definitions
    assert len(defs) > 1  # Make sure we get mock results
    inner_api_mock.command_definitions.assert_called()
Exemple #7
0
def test_passes_property(pass_result):
    api_mock = Mock(spec=ModelingAPI)
    inner_api_mock = create_autospec(ScriptingAPI)
    api_mock.scripting_api = inner_api_mock
    inner_api_mock.passes.return_value = pass_result

    sat = Satellite(api_mock, id=1, name="Sat E. Lite")
    passes = sat.passes

    inner_api_mock.passes.assert_called_once_with(system_id=1,
                                                  start_time=ANY,
                                                  end_time=ANY,
                                                  first=ANY)
    assert len(
        passes) > 50, "There should be a bunch of pass objects in the array"
Exemple #8
0
def test_init_makes_no_api_calls():
    api_mock = Mock(spec=ModelingAPI)
    Satellite(api_mock, id=1, name="Sat E. Lite")
    assert len(
        api_mock.mock_calls) == 0, "No calls to the API should happen on init"