feat(Profpatsch): add netstring helper function & python lib
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>
This commit is contained in:
parent
baab2ce359
commit
e219c13328
2 changed files with 103 additions and 0 deletions
45
users/Profpatsch/netstring/tests.nix
Normal file
45
users/Profpatsch/netstring/tests.nix
Normal file
|
|
@ -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
|
||||
;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue