|
7 | 7 | import io |
8 | 8 | import warnings |
9 | 9 |
|
| 10 | +import json |
10 | 11 | import mock |
11 | 12 | import pytest |
12 | 13 | import requests |
@@ -527,6 +528,30 @@ def test_with_args(self, request): |
527 | 528 | proxies=None, |
528 | 529 | timeout=None) |
529 | 530 |
|
| 531 | + @mock.patch('SoftLayer.transports.requests.Session.request') |
| 532 | + def test_with_args_bytes(self, request): |
| 533 | + request().text = '{}' |
| 534 | + |
| 535 | + req = transports.Request() |
| 536 | + req.service = 'SoftLayer_Service' |
| 537 | + req.method = 'getObject' |
| 538 | + req.args = ('test', b'asdf') |
| 539 | + |
| 540 | + resp = self.transport(req) |
| 541 | + |
| 542 | + self.assertEqual(resp, {}) |
| 543 | + request.assert_called_with( |
| 544 | + 'POST', |
| 545 | + 'http://something.com/SoftLayer_Service/getObject.json', |
| 546 | + headers=mock.ANY, |
| 547 | + auth=None, |
| 548 | + data='{"parameters": ["test", "YXNkZg=="]}', |
| 549 | + params={}, |
| 550 | + verify=True, |
| 551 | + cert=None, |
| 552 | + proxies=None, |
| 553 | + timeout=None) |
| 554 | + |
530 | 555 | @mock.patch('SoftLayer.transports.requests.Session.request') |
531 | 556 | def test_with_filter(self, request): |
532 | 557 | request().text = '{}' |
@@ -674,6 +699,16 @@ def test_print_reproduceable(self): |
674 | 699 | output_text = self.transport.print_reproduceable(req) |
675 | 700 | self.assertIn("https://test.com", output_text) |
676 | 701 |
|
| 702 | + def test_complex_encoder_bytes(self): |
| 703 | + to_encode = { |
| 704 | + 'test': ['array', 0, 1, False], |
| 705 | + 'bytes': b'ASDASDASD' |
| 706 | + } |
| 707 | + result = json.dumps(to_encode, cls=transports.ComplexEncoder) |
| 708 | + # result = '{"test": ["array", 0, 1, false], "bytes": "QVNEQVNEQVNE"}' |
| 709 | + # encode doesn't always encode in the same order, so testing exact match SOMETIMES breaks. |
| 710 | + self.assertIn("QVNEQVNEQVNE", result) |
| 711 | + |
677 | 712 |
|
678 | 713 | class TestFixtureTransport(testing.TestCase): |
679 | 714 |
|
|
0 commit comments