diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/fixtures/multierror.xml | 22 | ||||
-rw-r--r-- | tests/test_gsxws.py | 19 |
2 files changed, 39 insertions, 2 deletions
diff --git a/tests/fixtures/multierror.xml b/tests/fixtures/multierror.xml new file mode 100644 index 0000000..bedb975 --- /dev/null +++ b/tests/fixtures/multierror.xml @@ -0,0 +1,22 @@ +<?xml version='1.0' encoding='utf-8'?> +<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> + <S:Body> + <S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope"> + <faultcode>GSX.SYS.003</faultcode> + <faultstring>Multiple error messages exist. Please check the detail section.</faultstring> + <detail> + <operationId>iZETtEmzsD82QJs0P1hBgfJ</operationId> + <errors> + <error> + <code>RPR.ONS.025</code> + <message>This unit is not eligible for an Onsite repair from GSX.</message> + </error> + <error> + <code>RPR.ONS.026</code> + <message>At least one part should be eligible for Onsite.</message> + </error> + </errors> + </detail> + </S:Fault> + </S:Body> +</S:Envelope> diff --git a/tests/test_gsxws.py b/tests/test_gsxws.py index 6146a2c..59c0662 100644 --- a/tests/test_gsxws.py +++ b/tests/test_gsxws.py @@ -8,14 +8,29 @@ from unittest import main, skip, TestCase from gsxws.objectify import parse from gsxws.products import Product -from gsxws import repairs, escalations +from gsxws import repairs, escalations, GsxError class RemoteTestCase(TestCase): def setUp(self): from gsxws.core import connect logging.basicConfig(level=logging.DEBUG) - connect(env['GSX_USER'], env['GSX_PASSWORD'], env['GSX_SOLDTO'], env['GSX_ENV']) + connect(env['GSX_USER'], + env['GSX_PASSWORD'], + env['GSX_SOLDTO'], + env['GSX_ENV']) + + +class TestErrorFunctions(TestCase): + def setUp(self): + xml = open('tests/fixtures/multierror.xml', 'r').read() + self.data = GsxError(xml=xml) + + def test_code(self): + self.assertEqual(self.data.errors['RPR.ONS.025'], + 'This unit is not eligible for an Onsite repair from GSX.') + def test_message(self): + self.assertRegexpMatches(self.data.message, 'Multiple error messages exist.') class TestEscalationFunctions(RemoteTestCase): |