diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2011-03-15 13:05:33 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2011-03-15 13:05:33 +1300 |
commit | fe1e2f16ff61ceaaca65f52590a5d5a4b132d790 (patch) | |
tree | 54c537fbc56cfe4ed1e1b87f927e4d0ea7adeb05 /test | |
parent | 563d4161f120083eac79bf67cdddf28f9e9134c2 (diff) | |
download | mitmproxy-fe1e2f16ff61ceaaca65f52590a5d5a4b132d790.tar.gz mitmproxy-fe1e2f16ff61ceaaca65f52590a5d5a4b132d790.tar.bz2 mitmproxy-fe1e2f16ff61ceaaca65f52590a5d5a4b132d790.zip |
Improve responsiveness of request and response viewing.
- Computing the view of a large body is expensive, so we introduce an LRU cache
to hold the latest 20 results.
- Use ListView more correctly, passing it individual urwid.Text snippets,
rather than a single large one. This hugely improves render time.
Diffstat (limited to 'test')
-rw-r--r-- | test/test_utils.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/test_utils.py b/test/test_utils.py index c7d4e03f..434d6b26 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -310,6 +310,36 @@ class udummy_cert(libpry.AutoTree): assert os.path.exists(os.path.join(d, "foo.com.pem")) +class uLRUCache(libpry.AutoTree): + def test_one(self): + class Foo: + ran = False + @utils.LRUCache(2) + def one(self, x): + self.ran = True + return x + + f = Foo() + assert f.one(1) == 1 + assert f.ran + f.ran = False + assert f.one(1) == 1 + assert not f.ran + + f.ran = False + assert f.one(1) == 1 + assert not f.ran + assert f.one(2) == 2 + assert f.one(3) == 3 + assert f.ran + + f.ran = False + assert f.one(1) == 1 + assert f.ran + + assert len(f._cached_one) == 2 + assert len(f._cachelist_one) == 2 + tests = [ uformat_timestamp(), @@ -324,4 +354,5 @@ tests = [ upretty_xmlish(), udummy_ca(), udummy_cert(), + uLRUCache(), ] |