#! /usr/bin/env avocado-runner-avocado-classless """ Self tests for avocado-classless plugins """ import types from avocado_classless.manifest import manifest_add from avocado_classless.test import ( assert_eq, assert_eq_unordered, assert_in, assert_raises, test, test_output ) @test def trivial(): pass @test def assert_true(): assert True # Check re-registering a function under a different name manifest_add(__name__, "trivial2", trivial) @test def test_assert_eq(): assert_eq(1, 1) @test def test_assert_in(): assert_in(1, [1, 2, 3]) assert_raises(AssertionError, assert_in, 'x', 'hello') @test def test_assert_raises(): def boom(exc): raise exc assert_raises(ValueError, boom, ValueError) @test def test_assert_eq_unordered(): assert_eq_unordered([1, 2, 3], (1, 2, 3)) assert_eq_unordered([1, 2, 3], [2, 3, 1]) assert_eq_unordered([1, 1, 1], (1, 1, 1)) assert_raises(AssertionError, assert_eq_unordered, [1, 2, 3], [1, 2, 4]) assert_raises(AssertionError, assert_eq_unordered, [1, 1], [1, 1, 1]) # Test we report attempting to double register the same test name @test def test_double_register(): def double_register(): mod = types.ModuleType('dummy') manifest_add(mod, "test", trivial) manifest_add(mod, "test", assert_true) assert_raises(ValueError, double_register) def is_int(val): assert isinstance(val, int) def is_positive(val): assert val > 0 @test_output(is_int, is_positive) def seventeen(): return 17