Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
64 lines (46 sloc) 2.97 KB

Test Cases

OpenWeave includes a number of Python scripts for testing Weave functionality over simulated Happy topologies. These test cases ensure the topology is properly configured for network connectivity and Weave deployment.

Test case scripts are found in the OpenWeave repository at /src/test-apps/happy/tests. There are two types of tests:

  • Service — Tests that interface with a Service
  • Standalone — Tests that run on local topologies


  1. Install OpenWeave. See the OpenWeave Build guide for instructions.

  2. Install Happy. See the Happy Setup guide for instructions.

  3. Navigate to the directory containing the target test case. For example, to run an Echo profile test case:

    $ cd {path-to-openweave-core}/src/test-apps/happy/tests/standalone/echo
    $ python

Change test topology

OpenWeave test cases run against the sample Happy topologies found in /src/test-apps/happy/topologies/standalone. To use your own custom Happy topology in a test case:

  1. After constructing your custom topology, save it in JSON format. This saves the topology state file in the $HOME directory:

    $ happy-state -s my_topology.json
  2. In the test case script, locate the topology file being used. Topologies in test cases are typically assigned to the self.topology_file variable. For example, uses the following topology for a default OpenWeave build:

    self.topology_file = os.path.dirname(os.path.realpath(__file__)) + \
  3. Update the topology path to point to your custom topology state file:

    self.topology_file = "~/my_topology.json"
  4. Alternatively, place your custom topology state file in the same location as those included with OpenWeave:

    self.topology_file = os.path.dirname(os.path.realpath(__file__)) + \
  5. Run the test case.

Caution: Some test case scripts, such as use hard-coded Happy node names. Before modifying a script to use a custom topology, review the code and ensure your topology and the existing script are aligned.

You can’t perform that action at this time.