Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(367)

Unified Diff: third_party/gsutil/third_party/apitools/apitools/base/py/stream_slice_test.py

Issue 1377933002: [catapult] - Copy Telemetry's gsutilz over to third_party. (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: Rename to gsutil. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/gsutil/third_party/apitools/apitools/base/py/stream_slice_test.py
diff --git a/third_party/gsutil/third_party/apitools/apitools/base/py/stream_slice_test.py b/third_party/gsutil/third_party/apitools/apitools/base/py/stream_slice_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..f9b13b99a95481fd42b15c06d8c1f70f1bb196fa
--- /dev/null
+++ b/third_party/gsutil/third_party/apitools/apitools/base/py/stream_slice_test.py
@@ -0,0 +1,50 @@
+"""Tests for stream_slice."""
+
+import string
+
+import six
+import unittest2
+
+from apitools.base.py import exceptions
+from apitools.base.py import stream_slice
+
+
+class StreamSliceTest(unittest2.TestCase):
+
+ def setUp(self):
+ self.stream = six.StringIO(string.ascii_letters)
+ self.value = self.stream.getvalue()
+ self.stream.seek(0)
+
+ def testSimpleSlice(self):
+ ss = stream_slice.StreamSlice(self.stream, 10)
+ self.assertEqual('', ss.read(0))
+ self.assertEqual(self.value[0:3], ss.read(3))
+ self.assertIn('7/10', str(ss))
+ self.assertEqual(self.value[3:10], ss.read())
+ self.assertEqual('', ss.read())
+ self.assertEqual('', ss.read(10))
+ self.assertEqual(10, self.stream.tell())
+
+ def testEmptySlice(self):
+ ss = stream_slice.StreamSlice(self.stream, 0)
+ self.assertEqual('', ss.read(5))
+ self.assertEqual('', ss.read())
+ self.assertEqual(0, self.stream.tell())
+
+ def testOffsetStream(self):
+ self.stream.seek(26)
+ ss = stream_slice.StreamSlice(self.stream, 26)
+ self.assertEqual(self.value[26:36], ss.read(10))
+ self.assertEqual(self.value[36:], ss.read())
+ self.assertEqual('', ss.read())
+
+ def testTooShortStream(self):
+ ss = stream_slice.StreamSlice(self.stream, 1000)
+ self.assertEqual(self.value, ss.read())
+ self.assertEqual('', ss.read(0))
+ with self.assertRaises(exceptions.StreamExhausted) as e:
+ ss.read()
+ with self.assertRaises(exceptions.StreamExhausted) as e:
+ ss.read(10)
+ self.assertIn('exhausted after %d' % len(self.value), str(e.exception))

Powered by Google App Engine
This is Rietveld 408576698