diff --git a/ops/testing.py b/ops/testing.py new file mode 100644 index 000000000..b1cebb2fa --- /dev/null +++ b/ops/testing.py @@ -0,0 +1,64 @@ +# Copyright 2021 Canonical Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +"""Infrastructure to build unit tests for charms using the ops library.""" + +from ._private.harness import ( + ActionFailed, + ActionOutput, + AppUnitOrName, + CharmBase, + CharmMeta, + CharmType, + Container, + ExecArgs, + ExecHandler, + ExecProcess, + ExecResult, + Harness, + ReadableBuffer, + RelationNotFoundError, + RelationRole, + YAMLStringOrFile, + charm, + framework, + model, + pebble, + storage, +) + +# The Harness testing framework. +_ = ActionFailed +_ = ActionOutput +_ = AppUnitOrName +_ = CharmType +_ = ExecArgs +_ = ExecHandler +_ = ExecResult +_ = Harness +_ = ReadableBuffer +_ = YAMLStringOrFile + +# Names exposed for backwards compatibility +_ = CharmBase +_ = CharmMeta +_ = Container +_ = ExecProcess +_ = RelationNotFoundError +_ = RelationRole +_ = charm +_ = framework +_ = model +_ = pebble +_ = storage diff --git a/test/test_testing.py b/test/test_testing.py index e9e34f34d..4c88f232b 100644 --- a/test/test_testing.py +++ b/test/test_testing.py @@ -39,10 +39,11 @@ import ops import ops.testing from ops import pebble +from ops._private.harness import _TestingPebbleClient from ops.jujuversion import JujuVersion from ops.model import _ModelBackend from ops.pebble import FileType -from ops.testing import ExecResult, _TestingPebbleClient +from ops.testing import ExecResult is_linux = platform.system() == 'Linux' @@ -6888,7 +6889,7 @@ def get_change(_: ops.pebble.Client, change_id: str): 'spawn-time': '2021-02-10T04:36:22.118970777Z', }) - monkeypatch.setattr(ops.testing._TestingPebbleClient, 'get_change', get_change) + monkeypatch.setattr(_TestingPebbleClient, 'get_change', get_change) harness.pebble_notify( 'foo', '123',