diff options
author | Profpatsch <mail@profpatsch.de> | 2021-01-01T23·15+0100 |
---|---|---|
committer | Profpatsch <mail@profpatsch.de> | 2021-01-03T16·12+0000 |
commit | e219c133280dde03f2bf5e763b23e67ddeae83e0 (patch) | |
tree | 5e13581d50659792a1fc8c1412b996b5cf33ddf1 /users/Profpatsch/netstring/tests.nix | |
parent | baab2ce35901ca581e157a1640105e7f166060d1 (diff) |
feat(Profpatsch): add netstring helper function & python lib r/2055
Simple helper function to generate a netstring that is a list of key-value pairs, to serialize a nix dict. Also adds a python lib to read the serialized form into a dict again. Change-Id: I306c0cfd51640c0658d32c8d3a4f3d332ba448f0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2315 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
Diffstat (limited to 'users/Profpatsch/netstring/tests.nix')
-rw-r--r-- | users/Profpatsch/netstring/tests.nix | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/users/Profpatsch/netstring/tests.nix b/users/Profpatsch/netstring/tests.nix new file mode 100644 index 000000000000..26853e13eebe --- /dev/null +++ b/users/Profpatsch/netstring/tests.nix @@ -0,0 +1,45 @@ +{ depot, lib, pkgs, python-netstring, toNetstring, toNetstringKeyVal }: + +let + imports = { + inherit (depot.users.Profpatsch) + writers + ; + }; + + python-netstring-test = imports.writers.python3 "python-netstring" { + libraries = p: [ + python-netstring + ]; + } '' + import netstring + + def assEq(left, right): + assert left == right, "{} /= {}".format(str(left), str(right)) + + assEq( + netstring.read_netstring(b"""${toNetstring "hi!"}"""), + (b"hi!", b"") + ) + + assEq( + netstring.read_netstring_key_val( + b"""${toNetstringKeyVal { foo = "42"; }}""" + ), + (b'foo', b'42', b"") + ) + + assEq( + netstring.read_netstring_key_val_list( + b"""${toNetstringKeyVal { foo = "42"; bar = "hi"; }}""" + ), + { b'foo': b'42', b'bar': b'hi' } + ) + + ''; + +in { + inherit + python-netstring-test + ; +} |