diff options
author | Andrei Zeliankou <zelenkov@nginx.com> | 2020-03-02 13:10:38 +0000 |
---|---|---|
committer | Andrei Zeliankou <zelenkov@nginx.com> | 2020-03-02 13:10:38 +0000 |
commit | f68947bc60c930d460e1bd71bb5f486579009578 (patch) | |
tree | 40643ed3599e8dd0ffd19ce9954a4f4142b12e23 /test/unit/http.py | |
parent | 5d67879a5051f7e3d3b4dd96da4f43e7822f7da4 (diff) | |
download | unit-f68947bc60c930d460e1bd71bb5f486579009578.tar.gz unit-f68947bc60c930d460e1bd71bb5f486579009578.tar.bz2 |
Tests: truncated huge messages while logging.
Diffstat (limited to 'test/unit/http.py')
-rw-r--r-- | test/unit/http.py | 45 |
1 files changed, 33 insertions, 12 deletions
diff --git a/test/unit/http.py b/test/unit/http.py index c71e8f7e..47fb48f1 100644 --- a/test/unit/http.py +++ b/test/unit/http.py @@ -96,12 +96,7 @@ class TestHTTP(TestUnit): encoding = 'utf-8' if 'encoding' not in kwargs else kwargs['encoding'] - if TestUnit.detailed: - print('>>>') - try: - print(req.decode(encoding, 'ignore')) - except UnicodeEncodeError: - print(req) + self.log_out(req, encoding) resp = '' @@ -113,12 +108,7 @@ class TestHTTP(TestUnit): sock, read_timeout=read_timeout, buff_size=read_buffer_size ).decode(encoding) - if TestUnit.detailed: - print('<<<') - try: - print(resp) - except UnicodeEncodeError: - print(resp.encode()) + self.log_in(resp) if 'raw_resp' not in kwargs: resp = self._resp_to_dict(resp) @@ -138,6 +128,37 @@ class TestHTTP(TestUnit): return (resp, sock) + def log_out(self, log, encoding): + if TestUnit.detailed: + print('>>>') + log = self.log_truncate(log) + try: + print(log.decode(encoding, 'ignore')) + except UnicodeEncodeError: + print(log) + + def log_in(self, log): + if TestUnit.detailed: + print('<<<') + log = self.log_truncate(log) + try: + print(log) + except UnicodeEncodeError: + print(log.encode()) + + def log_truncate(self, log, limit=1024): + len_log = len(log) + if len_log > limit: + log = log[:limit] + appendix = '(...logged %s of %s bytes)' % (limit, len_log) + + if isinstance(log, bytes): + appendix = appendix.encode() + + log = log + appendix + + return log + def delete(self, **kwargs): return self.http('DELETE', **kwargs) |