From 5429dd71cd3a405aada4101abf4359c5e02d62bc Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Fri, 10 Apr 2020 15:48:22 -0400
Subject: [PATCH] Start of a test for inserting unblinded tokens

---
 .../tests/test_client_resource.py             | 39 +++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/src/_zkapauthorizer/tests/test_client_resource.py b/src/_zkapauthorizer/tests/test_client_resource.py
index 423f495..2a31085 100644
--- a/src/_zkapauthorizer/tests/test_client_resource.py
+++ b/src/_zkapauthorizer/tests/test_client_resource.py
@@ -146,6 +146,7 @@ from .strategies import (
     client_dummyredeemer_configurations,
     client_nonredeemer_configurations,
     client_errorredeemer_configurations,
+    unblinded_tokens,
     vouchers,
     requests,
 )
@@ -305,6 +306,44 @@ class UnblindedTokenTests(TestCase):
         self.useFixture(CaptureTwistedLogs())
 
 
+    @given(
+        tahoe_configs(),
+        vouchers(),
+        lists(unblinded_tokens(), unique=True, min_size=1, max_size=1000),
+    )
+    def test_post(self, get_config, voucher, unblinded_tokens):
+        """
+        When the unblinded token collection receives a **POST**, the unblinded
+        tokens in the request body are inserted into the system and an OK
+        response is generated.
+        """
+        tempdir = self.useFixture(TempDir())
+        config = get_config(tempdir.join(b"tahoe"), b"tub.port")
+        root = root_from_config(config, datetime.now)
+
+
+        agent = RequestTraversalAgent(root)
+        producer = FileBodyProducer(
+            BytesIO(dumps({u"unblinded-tokens": list(
+                token.unblinded_token
+                for token
+                in unblinded_tokens
+            )})),
+            cooperator=uncooperator(),
+        )
+        requesting = agent.request(
+            b"POST",
+            b"http://127.0.0.1/unblinded-token",
+            bodyProducer=producer,
+        )
+        self.assertThat(
+            requesting,
+            succeeded(
+                ok_response(headers=application_json()),
+            ),
+        )
+
+
     @given(tahoe_configs(), vouchers(), integers(min_value=0, max_value=100))
     def test_get(self, get_config, voucher, num_tokens):
         """
-- 
GitLab