aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--netlib/tcp.py8
-rw-r--r--test/test_tcp.py24
2 files changed, 28 insertions, 4 deletions
diff --git a/netlib/tcp.py b/netlib/tcp.py
index 76fb7ca0..9c5cfa64 100644
--- a/netlib/tcp.py
+++ b/netlib/tcp.py
@@ -44,7 +44,7 @@ class _FileLike:
def __init__(self, o):
self.o = o
self._log = None
- self.timestamp = None
+ self.first_byte_timestamp = None
def set_descriptor(self, o):
self.o = o
@@ -81,8 +81,8 @@ class _FileLike:
if self.is_logging():
self._log.append(v)
- def reset_timestamp(self):
- self.timestamp = None
+ def reset_timestamps(self):
+ self.first_byte_timestamp = None
class Writer(_FileLike):
def flush(self):
@@ -134,7 +134,7 @@ class Reader(_FileLike):
raise NetLibDisconnect
except SSL.SysCallError, v:
raise NetLibDisconnect
- self.timestamp = self.timestamp or time.time()
+ self.first_byte_timestamp = self.first_byte_timestamp or time.time()
if not data:
break
result += data
diff --git a/test/test_tcp.py b/test/test_tcp.py
index 5a12da91..d27a678a 100644
--- a/test/test_tcp.py
+++ b/test/test_tcp.py
@@ -313,3 +313,27 @@ class TestFileLike:
s.write("x")
assert s.get_log() == "xx"
+ def test_reset_timestamps(self):
+ s = cStringIO.StringIO("foobar\nfoobar")
+ s = tcp.Reader(s)
+ s.first_byte_timestamp = 500
+ s.reset_timestamps()
+ assert not s.first_byte_timestamp
+
+ def test_first_byte_timestamp_updated_on_read(self):
+ s = cStringIO.StringIO("foobar\nfoobar")
+ s = tcp.Reader(s)
+ s.read(1)
+ assert s.first_byte_timestamp
+ expected = s.first_byte_timestamp
+ s.read(5)
+ assert s.first_byte_timestamp == expected
+
+ def test_first_byte_timestamp_updated_on_readline(self):
+ s = cStringIO.StringIO("foobar\nfoobar\nfoobar")
+ s = tcp.Reader(s)
+ s.readline()
+ assert s.first_byte_timestamp
+ expected = s.first_byte_timestamp
+ s.readline()
+ assert s.first_byte_timestamp == expected