From c3a7e4ee4c3d70f50c62082d89a41985a069af76 Mon Sep 17 00:00:00 2001
From: Valentin Lorentz <vlorentz@softwareheritage.org>
Date: Wed, 5 Jun 2019 11:28:34 +0200
Subject: [PATCH] Prevent Hypothesis from writing the null character in the
 'reason' field.

pgsql does not support it.
---
 swh/model/hypothesis_strategies.py | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/swh/model/hypothesis_strategies.py b/swh/model/hypothesis_strategies.py
index 61c55e11..1b99957a 100644
--- a/swh/model/hypothesis_strategies.py
+++ b/swh/model/hypothesis_strategies.py
@@ -20,6 +20,15 @@ from .model import (
 from .identifiers import snapshot_identifier, identifier_to_bytes
 
 
+pgsql_alphabet = characters(
+    blacklist_categories=('Cs', ),
+    blacklist_characters=['\u0000'])  # postgresql does not like these
+
+
+def pgsql_text():
+    return text(alphabet=pgsql_alphabet)
+
+
 def sha1_git():
     return binary(min_size=20, max_size=20)
 
@@ -89,10 +98,7 @@ def releases(draw):
 
 
 def revision_metadata():
-    alphabet = characters(
-        blacklist_categories=('Cs', ),
-        blacklist_characters=['\u0000'])  # postgresql does not like these
-    return dictionaries(text(alphabet=alphabet), text(alphabet=alphabet))
+    return dictionaries(pgsql_text(), pgsql_text())
 
 
 def revisions():
@@ -125,7 +131,7 @@ def directories():
 def contents(draw):
     (status, data, reason) = draw(one_of(
         tuples(just('visible'), binary(), none()),
-        tuples(just('absent'), none(), text()),
+        tuples(just('absent'), none(), pgsql_text()),
         tuples(just('hidden'), none(), none()),
     ))
 
-- 
GitLab