Пример #1
0
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
Пример #2
0
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)
Пример #3
0
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")
Пример #4
0
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() == []
Пример #5
0
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")
Пример #6
0
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()
Пример #7
0
 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(), [])