@@ -3896,4 +3896,54 @@ async def test_stream_compression(self):
3896
3896
compression = "s3" ,
3897
3897
)
3898
3898
assert str (err .value ) == 'nats: invalid store compression type: s3'
3899
+
3900
+ # An empty string means not setting compression, but to be explicit
3901
+ # can also use
3902
+ js = nc .jetstream ()
3903
+ await js .add_stream (
3904
+ name = "NONE" ,
3905
+ subjects = ["bar" ],
3906
+ compression = "none" ,
3907
+ )
3908
+ sinfo = await js .stream_info ("NONE" )
3909
+ assert sinfo .config .compression == nats .js .api .StoreCompression .NONE
3910
+
3911
+ # By default it should be using 'none' as the configured compression value.
3912
+ js = nc .jetstream ()
3913
+ await js .add_stream (
3914
+ name = "NONE2" ,
3915
+ subjects = ["quux" ],
3916
+ )
3917
+ sinfo = await js .stream_info ("NONE2" )
3918
+ assert sinfo .config .compression == nats .js .api .StoreCompression .NONE
3919
+ await nc .close ()
3920
+
3921
+ @async_test
3922
+ async def test_stream_consumer_metadata (self ):
3923
+ nc = await nats .connect ()
3924
+
3925
+ js = nc .jetstream ()
3926
+ await js .add_stream (
3927
+ name = "META" ,
3928
+ subjects = ["test" , "foo" ],
3929
+ metadata = {'foo' :'bar' },
3930
+ )
3931
+ sinfo = await js .stream_info ("META" )
3932
+ assert sinfo .config .metadata ['foo' ] == 'bar'
3933
+
3934
+ with pytest .raises (ValueError ) as err :
3935
+ await js .add_stream (
3936
+ name = "META2" ,
3937
+ subjects = ["test" , "foo" ],
3938
+ metadata = ["hello" , "world" ],
3939
+ )
3940
+ assert str (err .value ) == 'nats: invalid metadata format'
3941
+
3942
+ await js .add_consumer ("META" , config = nats .js .api .ConsumerConfig (
3943
+ durable_name = "b" ,
3944
+ metadata = {'hello' :'world' }
3945
+ ))
3946
+ cinfo = await js .consumer_info ("META" , "b" )
3947
+ assert cinfo .config .metadata ['hello' ] == 'world'
3948
+
3899
3949
await nc .close ()
0 commit comments