예제 #1
0
def test_equal():
    v1 = Color()
    v2 = Color()
    assert v1 == v2
    vrgba = Color(1, 2, 3, 4)
    vrgb = Color(1, 2, 3)
    assert not vrgb == vrgba  # Force use of __eq__
예제 #2
0
def test_initialize(arg):
    if isinstance(arg, dict):
        v1 = Color(**arg)
        v2 = Color(**arg)
    else:
        v1 = Color(*arg)
        v2 = Color(*arg)
    assert v1 == v2
예제 #3
0
def test_methods(field, ret_type, params):
    v = Color()
    # Don't test methods' validity but bindings one
    assert hasattr(v, field)
    method = getattr(v, field)
    assert callable(method)
    ret = method(*params)
    assert type(ret) == ret_type
예제 #4
0
def test_properties_ro(args):
    v = Color(4.2)
    field, ret_type = args
    assert hasattr(v, field)
    field_val = getattr(v, field)
    assert type(field_val) == ret_type
    with pytest.raises(AttributeError):
        setattr(v, field, 0.5)
예제 #5
0
def test_properties_rw(field, ret_type):
    v = Color()
    assert hasattr(v, field)
    field_val = getattr(v, field)
    assert type(field_val) == ret_type
    if ret_type is float:
        vals = (0, 10, 10.0, 42.5)
    else:
        vals = (0, 10, 0xFF)
    for val in vals:
        setattr(v, field, val)
        field_val = getattr(v, field)
        assert field_val == val
예제 #6
0
def test_base():
    v = Color()
    assert type(v) == Color
예제 #7
0
def test_bad_instantiate(arg):
    with pytest.raises(TypeError):
        Color(*arg)
예제 #8
0
def test_repr():
    v = Color()
    assert repr(v) == "<Color(r=0.0, g=0.0, b=0.0, a=1.0)>"
예제 #9
0
def test_bad_equal(arg):
    basis = Color(1, 2, 3, 4)
    assert basis != arg
예제 #10
0
def test_bad_properties(args):
    v = Color()
    field, bad_value = args
    with pytest.raises(TypeError):
        setattr(v, field, bad_value)
예제 #11
0
    else:
        v1 = Color(*arg)
        v2 = Color(*arg)
    assert v1 == v2


def test_equal():
    v1 = Color()
    v2 = Color()
    assert v1 == v2
    vrgba = Color(1, 2, 3, 4)
    vrgb = Color(1, 2, 3)
    assert not vrgb == vrgba  # Force use of __eq__


@pytest.mark.parametrize("arg", [None, 0, "foo", Color(1, 2, 3, 5)])
def test_bad_equal(arg):
    basis = Color(1, 2, 3, 4)
    assert basis != arg


def test_repr():
    v = Color()
    assert repr(v) == "<Color(r=0.0, g=0.0, b=0.0, a=1.0)>"


@pytest.mark.parametrize("arg", [(None, ), (1, None), (1, 2, None),
                                 ("dummy", ), (NODE, ), (Vector2(), )])
def test_bad_instantiate(arg):
    with pytest.raises(TypeError):
        Color(*arg)
예제 #12
0
 def generate_value(self):
     # Use integer instead of float to avoid floating point imprecision in comparisons
     return Color(self.random.randint(0, 100))