Index: client/libs/logdog/tests/stream_test.py |
diff --git a/client/libs/logdog/tests/stream_test.py b/client/libs/logdog/tests/stream_test.py |
index 98cbbdacb971f7362546eb45df12b4afdefe2f44..008379f8c318fee52d8f1fdb7524c07b43ea1092 100755 |
--- a/client/libs/logdog/tests/stream_test.py |
+++ b/client/libs/logdog/tests/stream_test.py |
@@ -14,7 +14,7 @@ ROOT_DIR = os.path.dirname(os.path.abspath(os.path.join( |
os.pardir, os.pardir, os.pardir))) |
sys.path.insert(0, ROOT_DIR) |
-from libs.logdog import stream, varint |
+from libs.logdog import stream, streamname, varint |
class StreamParamsTestCase(unittest.TestCase): |
@@ -93,14 +93,14 @@ class StreamClientTestCase(unittest.TestCase): |
return json.loads(header), data.read() |
class _TestStreamClient(stream.StreamClient): |
- def __init__(self, value): |
- super(StreamClientTestCase._TestStreamClient, self).__init__() |
+ def __init__(self, value, **kwargs): |
+ super(StreamClientTestCase._TestStreamClient, self).__init__(**kwargs) |
self.value = value |
self.last_conn = None |
@classmethod |
- def _create(cls, value): |
- return cls(value) |
+ def _create(cls, value, **kwargs): |
+ return cls(value, **kwargs) |
def _connect_raw(self): |
conn = StreamClientTestCase._TestStreamClientConnection() |
@@ -128,8 +128,17 @@ class StreamClientTestCase(unittest.TestCase): |
self.assertEqual(client.value, 'value') |
def testTextStream(self): |
- client = self._registry.create('test:value') |
+ client = self._registry.create('test:value', |
+ project='test', |
+ prefix='foo/bar', |
+ coordinator_host='example.appspot.com') |
with client.text('mystream') as fd: |
+ self.assertEqual( |
+ fd.path, |
+ streamname.StreamPath(prefix='foo/bar', name='mystream')) |
+ self.assertEqual( |
+ fd.get_viewer_url(), |
+ 'https://example.appspot.com/v/?s=test%2Ffoo%2Fbar%2F%2B%2Fmystream') |
fd.write('text\nstream\nlines') |
conn = client.last_conn |
@@ -144,6 +153,14 @@ class StreamClientTestCase(unittest.TestCase): |
with client.text('mystream', content_type='foo/bar', |
tee=stream.StreamParams.TEE_STDOUT, |
tags={'foo': 'bar', 'baz': 'qux'}) as fd: |
+ self.assertEqual( |
+ fd.params, |
+ stream.StreamParams.make( |
+ name='mystream', |
+ type=stream.StreamParams.TEXT, |
+ content_type='foo/bar', |
+ tee=stream.StreamParams.TEE_STDOUT, |
+ tags={'foo': 'bar', 'baz': 'qux'})) |
fd.write('text!') |
conn = client.last_conn |
@@ -160,8 +177,17 @@ class StreamClientTestCase(unittest.TestCase): |
self.assertEqual(data, 'text!') |
def testBinaryStream(self): |
- client = self._registry.create('test:value') |
+ client = self._registry.create('test:value', |
+ project='test', |
+ prefix='foo/bar', |
+ coordinator_host='example.appspot.com') |
with client.binary('mystream') as fd: |
+ self.assertEqual( |
+ fd.path, |
+ streamname.StreamPath(prefix='foo/bar', name='mystream')) |
+ self.assertEqual( |
+ fd.get_viewer_url(), |
+ 'https://example.appspot.com/v/?s=test%2Ffoo%2Fbar%2F%2B%2Fmystream') |
fd.write('\x60\x0d\xd0\x65') |
conn = client.last_conn |
@@ -172,8 +198,17 @@ class StreamClientTestCase(unittest.TestCase): |
self.assertEqual(data, '\x60\x0d\xd0\x65') |
def testDatagramStream(self): |
- client = self._registry.create('test:value') |
+ client = self._registry.create('test:value', |
+ project='test', |
+ prefix='foo/bar', |
+ coordinator_host='example.appspot.com') |
with client.datagram('mystream') as fd: |
+ self.assertEqual( |
+ fd.path, |
+ streamname.StreamPath(prefix='foo/bar', name='mystream')) |
+ self.assertEqual( |
+ fd.get_viewer_url(), |
+ 'https://example.appspot.com/v/?s=test%2Ffoo%2Fbar%2F%2B%2Fmystream') |
fd.send('datagram0') |
fd.send('dg1') |
fd.send('') |
@@ -187,6 +222,35 @@ class StreamClientTestCase(unittest.TestCase): |
self.assertEqual(list(self._split_datagrams(data)), |
['datagram0', 'dg1', '', 'dg3']) |
+ def testStreamWithoutPrefixCannotGenerateUrls(self): |
+ client = self._registry.create('test:value', |
+ coordinator_host='example.appspot.com') |
+ with client.text('mystream') as fd: |
+ self.assertRaises(KeyError, fd.get_viewer_url) |
+ |
+ def testStreamWithoutInvalidPrefixCannotGenerateUrls(self): |
+ client = self._registry.create('test:value', |
+ project='test', |
+ prefix='!!! invalid !!!', |
+ coordinator_host='example.appspot.com') |
+ with client.text('mystream') as fd: |
+ self.assertRaises(ValueError, fd.get_viewer_url) |
+ |
+ def testStreamWithoutProjectCannotGenerateUrls(self): |
+ client = self._registry.create('test:value', |
+ prefix='foo/bar', |
+ coordinator_host='example.appspot.com') |
+ with client.text('mystream') as fd: |
+ self.assertRaises(KeyError, fd.get_viewer_url) |
+ |
+ def testStreamWithoutCoordinatorHostCannotGenerateUrls(self): |
+ client = self._registry.create('test:value', |
+ project='test', |
+ prefix='foo/bar') |
+ with client.text('mystream') as fd: |
+ self.assertRaises(KeyError, fd.get_viewer_url) |
+ |
+ |
def testCreatingDuplicateStreamNameRaisesValueError(self): |
client = self._registry.create('test:value') |
with client.text('mystream') as fd: |