aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/fixtures/multierror.xml22
-rw-r--r--tests/test_gsxws.py19
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):