class TestShowersLimitXMLHandler(unittest.TestCase):

    def setUp(self):
        unittest.TestCase.setUp(self)

        self.h = ShowersLimitXMLHandler()

        self.obj = ShowersLimit(123)

        etree.register_namespace('mc', 'http://pymontecarlo.sf.net')
        source = BytesIO(b'<mc:showersLimit xmlns:mc="http://pymontecarlo.sf.net" showers="123" />')
        self.element = etree.parse(source).getroot()

    def tearDown(self):
        unittest.TestCase.tearDown(self)

    def testcan_parse(self):
        self.assertTrue(self.h.can_parse(self.element))

    def testparse(self):
        obj = self.h.parse(self.element)

        self.assertEqual(123, obj.showers)

    def testcan_convert(self):
        self.assertTrue(self.h.can_convert(self.obj))

    def testconvert(self):
        element = self.h.convert(self.obj)

        self.assertAlmostEqual(123.0, float(element.get('showers')), 4)
    def setUp(self):
        unittest.TestCase.setUp(self)

        self.h = ShowersLimitXMLHandler()

        self.obj = ShowersLimit(123)

        etree.register_namespace('mc', 'http://pymontecarlo.sf.net')
        source = BytesIO(b'<mc:showersLimit xmlns:mc="http://pymontecarlo.sf.net" showers="123" />')
        self.element = etree.parse(source).getroot()