import autopath
import py
from httpmp2.clientevent import ClientEvent

class TestClientEvent(object):
    def test_init_keydown(self):
        event = ClientEvent('KD1')
        assert event.type == event.KEYDOWN
        assert int(event.value) == 1

    def test_init_keyup(self):
        event = ClientEvent('KU127')
        assert event.type == event.KEYUP
        assert int(event.value) == 127

    def test_init_mousedown(self):
        event = ClientEvent('MD1')
        assert event.type == event.MOUSEDOWN
        assert int(event.value) == 1

    def test_init_mouseup(self):
        event = ClientEvent('MU3')
        assert event.type == event.MOUSEUP
        assert int(event.value) == 3

    def test_broken_argument(self):
        py.test.raises(TypeError, "ClientEvent(1)")
        py.test.raises(ValueError, "ClientEvent('')")
        py.test.raises(ValueError, "ClientEvent(' KD1')")
        # XXX this actually works, but not really a problem I guess :)
        # py.test.raises(ValueError, "ClientEvent('KD1 ')")


