def test_quotable(): with TemporaryDirectory() as dir: fr = FileResource(dir, schema=s.str()) id = "1%2F2" value = "Value" fr.create(id, value) assert fr.read(id) == value
def test_quote_unquote(): with TemporaryDirectory() as dir: fr = FileResource(dir, schema=s.bytes(), extension=".bin") body = b"body" id = "resource%identifier" assert fr.create(id, body)["id"] == id fr.delete(id)
def test_read_schemaerror(): with TemporaryDirectory() as dir: fr = FileResource(dir, schema=s.int(), extension=".int") fr.create("1", 1) with open("{}/1.int".format(dir), "w") as f: f.write("a") with pytest.raises(InternalServerError): fr.read("1")
def test_crud_bytes(): with TemporaryDirectory() as dir: frs = FileResource(dir, schema=s.bytes(), extension=".bin") body = b"\x00\x0e\0x01\0x01\0x00" id = "binary" assert frs.create(id, body)["id"] == id assert frs.list() == [id] assert frs.read(id) == body body = bytes((1, 2, 3, 4, 5)) frs.update(id, body) assert frs.read(id) == body frs.delete(id) assert frs.list() == []
def test_create_conflict(): with TemporaryDirectory() as dir: fr = FileResource(dir, schema=s.str(), extension=".bin") fr.create("1", "foo") with pytest.raises(Conflict): fr.create("1", "foo")
def test_invalid_directory(): with TemporaryDirectory() as dir: fr = FileResource(dir, schema=s.bytes(), extension=".bin") # directory should now be deleted underneath the resource body = b"body" id = "resource%identifier" with pytest.raises(InternalServerError): fr.create(id, body) with pytest.raises(NotFound): fr.read(id) with pytest.raises(NotFound): fr.update(id, body) with pytest.raises(NotFound): fr.delete(id) with pytest.raises(InternalServerError): fr.list()
def test_crud_bytes(self): with TemporaryDirectory() as dir: frs = FileResource(dir, schema=s.bytes(), extension=".bin") body = b"\x00\x0e\0x01\0x01\0x00" id = "binary" self.assertEqual(id, frs.create(id, body)["id"]) self.assertEqual(frs.list(), [id]) self.assertEqual(body, frs.read(id)) body = bytes((1,2,3,4,5)) frs.update(id, body) self.assertEqual(body, frs.read(id)) frs.delete(id) self.assertEqual(frs.list(), [])