Mock application in unit tests

This commit is contained in:
Lipu Fei 2018-08-23 16:59:09 +02:00 committed by Ian Paschal
parent 93645e6bfe
commit 61c635fbaf

View File

@ -3,19 +3,21 @@
# The purpose of this class is to create fixtures or methods that can be shared among all tests. # The purpose of this class is to create fixtures or methods that can be shared among all tests.
import unittest.mock
import pytest import pytest
from UM.Qt.QtApplication import QtApplication #QtApplication import is required, even though it isn't used. from UM.Qt.QtApplication import QtApplication #QtApplication import is required, even though it isn't used.
from cura.CuraApplication import CuraApplication from cura.CuraApplication import CuraApplication
from cura.MachineActionManager import MachineActionManager from cura.MachineActionManager import MachineActionManager
# Create a CuraApplication object that will be shared among all tests. It needs to be initialized. # Create a CuraApplication object that will be shared among all tests. It needs to be initialized.
# Since we need to use it more that once, we create the application the first time and use its instance afterwards. # Since we need to use it more that once, we create the application the first time and use its instance afterwards.
@pytest.fixture() @pytest.fixture()
def application() -> CuraApplication: def application() -> CuraApplication:
application = CuraApplication.getInstance() app = unittest.mock.MagicMock()
if application is None: return app
application = CuraApplication()
return application
# Returns a MachineActionManager instance. # Returns a MachineActionManager instance.
@pytest.fixture() @pytest.fixture()