harness-extensions

Harness Extensions

Channel Revision Published Runs on
latest/beta 3 05 Jul 2022
Ubuntu 20.04
juju deploy harness-extensions --channel beta
Show information

Platform:

Ubuntu
20.04

charms.harness_extensions.v0.declarative_tester_charm

This is a library providing a utility for unittesting code that's meant to be used in charms.

So not charm code per se, but e.g. library code, extensions, etc...

Basic usage:

from charms.harness_extensions.v0.charm_tester import harness_factory def test_lib(): harness = harness_factory() harness.begin() charm = harness.charm

@charm.run
def _initialize(self):
    self.lib = CharmLib(self)

@charm.listener(charm.on.my_lib_event)
def _on_my_lib_event(self, event):
    assert event.foo == 'bar'

assert not _on_my_lib_event.called
harness.do_things_to_trigger_lib_event()
assert isinstance(_on_my_lib_event.called, MyExpectedEventType)

def charm_type_factory()

Methods

charm_type_factory. InvokeEvent

charm_type_factory. TestCharm

def harness_factory(
    meta: OptionalYAML,
    actions: OptionalYAML,
    config: OptionalYAML
)