# Path: kinto-remote-settings/tests/signer/support.py
# class BaseWebTest(CoreWebTest):
#     def __init__(self, *args, **kwargs):
#     def get_app_settings(cls, extras=None):


import random
import re
import string
import unittest
from unittest import mock
from kinto.core.errors import ERRORS
from kinto.core.testing import FormattedErrorMixin
from .support import BaseWebTest, get_user_headers
        )
        # Delete r1.
        self.app.delete(
            self.source_collection + "/records/r1",
            headers=self.headers,
        )
        # Approve deletion of r1.
        self.app.patch_json(
            self.source_collection,
            {"data": {"status": "to-review"}},
            headers=self.headers,
        )
        self.app.patch_json(
            self.source_collection,
            {"data": {"status": "to-sign"}},
            headers=self.other_headers,
        )
        # Recreate r1.
        self.app.put_json(
            self.source_collection + "/records/r1",
            {"data": {"title": "Servus"}},
            headers=self.headers,
        )
        # Rollback.
        self.app.patch_json(
            self.source_collection,
            {"data": {"status": "to-rollback"}},
            headers=self.headers,
        )
        # r1 should be deleted again.

# Path: kinto-remote-settings/tests/signer/support.py
# class BaseWebTest(CoreWebTest):
#     def __init__(self, *args, **kwargs):
#     def get_app_settings(cls, extras=None):


# Path: kinto-remote-settings/tests/signer/test_signoff_flow.py
import random
import re
import string
import unittest
from unittest import mock
from kinto.core.errors import ERRORS
from kinto.core.testing import FormattedErrorMixin
from .support import BaseWebTest, get_user_headers

        )
        # Delete r1.
        self.app.delete(
            self.source_collection + "/records/r1",
            headers=self.headers,
        )
        # Approve deletion of r1.
        self.app.patch_json(
            self.source_collection,
            {"data": {"status": "to-review"}},
            headers=self.headers,
        )
        self.app.patch_json(
            self.source_collection,
            {"data": {"status": "to-sign"}},
            headers=self.other_headers,
        )
        # Recreate r1.
        self.app.put_json(
            self.source_collection + "/records/r1",
            {"data": {"title": "Servus"}},
            headers=self.headers,
        )
        # Rollback.
        self.app.patch_json(
            self.source_collection,
            {"data": {"status": "to-rollback"}},
            headers=self.headers,
        )
        # r1 should be deleted again.

        self.app.get(