diff options
author | Filipp Lepalaan <f@230.to> | 2013-09-23 17:35:54 +0300 |
---|---|---|
committer | Filipp Lepalaan <f@230.to> | 2013-09-23 17:35:54 +0300 |
commit | 86a6df80b0e40855097fcf836cf11bd4808882f6 (patch) | |
tree | 9bc6c3c4766e7ae5a21403c01f317b2a0b34b1c7 /tests | |
parent | d78047ab44809537d21fe048d63a4c3c8e96df3d (diff) | |
download | py-gsxws-86a6df80b0e40855097fcf836cf11bd4808882f6.tar.gz py-gsxws-86a6df80b0e40855097fcf836cf11bd4808882f6.tar.bz2 py-gsxws-86a6df80b0e40855097fcf836cf11bd4808882f6.zip |
Added support for multiple error messages
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): |