diff --git a/nixos/modules/tests/exercise-storage.py b/nixos/modules/tests/exercise-storage.py index 1d7197e6251a7570aafd7ac61e0564a22fbf67c9..00f3a2cf0a7bb8ceeb21d010a9c022e9e79af5dc 100755 --- a/nixos/modules/tests/exercise-storage.py +++ b/nixos/modules/tests/exercise-storage.py @@ -1,31 +1,38 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python3 from sys import argv from os import urandom +from subprocess import check_output +from io import BytesIO + +import requests def main(): (clientDir,) = argv[1:] someData = urandom(2 ** 16) - with mkstemp() as (fd, name): - write(fd, someData) - - cap = get([ - "tahoe", "-d", clientDir, - "put", name, - ]) - dataReadBack = get([ - "tahoe", "-d", clientDir, - "get", cap, - ]) + api_root = get_api_root(clientDir) + cap = put(api_root, someData) + dataReadBack = get(api_root, cap) assert someData == dataReadBack -def get(argv): - return check_output(argv) +def get_api_root(path): + with open(path + u"/node.url") as f: + return f.read().strip() + +def put(api_root, data): + response = requests.put(api_root + u"uri", BytesIO(data)) + response.raise_for_status() + return response.text + +def get(api_root, cap): + response = requests.get(api_root + u"uri/" + cap, stream=True) + response.raise_for_status() + return response.raw.read() -if __name__ == '__main__': +if __name__ == u'__main__': main()