From 9e096128515bb6841ca08f8da15d28ac8a47ae55 Mon Sep 17 00:00:00 2001 From: Jimmy Zelinskie Date: Wed, 9 Aug 2017 20:45:46 -0400 Subject: [PATCH] Revert "Merge pull request #2844 from coreos-inc/alegrand/use_latest_appr_server_code" This reverts commit 646fafb2fd2db905a322f4042dff0fe8244633bb, reversing changes made to 5c1b635439f2c4bddc84cce7fe0b425931003ac3. --- .gitlab-ci.yml | 4 +- .../versions/5d4ae648155c_add_mediatypes.py | 35 -------------- data/oci_model/manifest.py | 2 +- data/oci_model/package.py | 2 +- data/oci_model/release.py | 7 ++- data/oci_model/tag.py | 2 +- endpoints/appr/__init__.py | 2 +- .../appr/{appr_backend.py => cnr_backend.py} | 13 +++--- endpoints/appr/models_interface.py | 2 +- endpoints/appr/models_oci.py | 16 +++---- endpoints/appr/registry.py | 44 +++++++++--------- endpoints/appr/test/test_api.py | 22 ++++----- initdb.py | 19 ++++---- requirements-nover.txt | 2 +- requirements.txt | 2 +- test/data/test.db | Bin 1679360 -> 1679360 bytes 16 files changed, 68 insertions(+), 106 deletions(-) delete mode 100644 data/migrations/versions/5d4ae648155c_add_mediatypes.py rename endpoints/appr/{appr_backend.py => cnr_backend.py} (94%) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c822ad7e9..18f69eb0f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,5 +1,5 @@ -# Generated from .gitlab-ci.jsonnet -# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN +# Generated from .gitlab-ci.jsonnet +# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN --- appr_e2e: allow_failure: true diff --git a/data/migrations/versions/5d4ae648155c_add_mediatypes.py b/data/migrations/versions/5d4ae648155c_add_mediatypes.py deleted file mode 100644 index 3a2666897..000000000 --- a/data/migrations/versions/5d4ae648155c_add_mediatypes.py +++ /dev/null @@ -1,35 +0,0 @@ -"""add_mediatypes - -Revision ID: 5d4ae648155c -Revises: d8989249f8f6 -Create Date: 2017-08-04 16:01:47.573800 - -""" - -# revision identifiers, used by Alembic. -revision = '5d4ae648155c' -down_revision = 'd8989249f8f6' - -from alembic import op -import sqlalchemy as sa - - -def upgrade(tables): - mtypes = ['helm', 'kpm', 'docker-compose', 'ksonnet', 'appr', 'kubernetes'] - data = [] - for mtype in mtypes: - data.append({'name': 'application/vnd.appr.package-manifest.%s.v0.json' % mtype}) - data.append({'name': 'application/vnd.appr.package.%s.v0.tar+gzip' % mtype}) - - op.bulk_insert( - tables.mediatype, - [ - {'name': 'application/vnd.appr.blob.v0.tar+gzip'}, - {'name': 'application/vnd.appr.manifests.v0.json'}, - {'name': 'application/vnd.appr.manifest.list.v0.json'}, - ] + data, - ) - - -def downgrade(tables): - pass diff --git a/data/oci_model/manifest.py b/data/oci_model/manifest.py index 7fe1c0857..a1af680b5 100644 --- a/data/oci_model/manifest.py +++ b/data/oci_model/manifest.py @@ -2,7 +2,7 @@ import logging import hashlib import json -from appr.models.package_base import get_media_type +from cnr.models.package_base import get_media_type from data.database import db_transaction, Manifest, ManifestListManifest, MediaType, Blob, Tag from data.oci_model import tag as tag_model diff --git a/data/oci_model/package.py b/data/oci_model/package.py index 9f72884a2..61eae8e20 100644 --- a/data/oci_model/package.py +++ b/data/oci_model/package.py @@ -1,4 +1,4 @@ -from appr.models.package_base import get_media_type, manifest_media_type +from cnr.models.package_base import get_media_type, manifest_media_type from peewee import prefetch diff --git a/data/oci_model/release.py b/data/oci_model/release.py index d9c8156f1..890e3e459 100644 --- a/data/oci_model/release.py +++ b/data/oci_model/release.py @@ -1,7 +1,7 @@ import bisect -from appr.exception import PackageAlreadyExists -from appr.models.package_base import manifest_media_type +from cnr.exception import PackageAlreadyExists +from cnr.models.package_base import manifest_media_type from data.database import (db_transaction, get_epoch_timestamp, Manifest, ManifestList, Tag, ManifestListManifest, Blob, ManifestBlob) @@ -10,7 +10,6 @@ from data.oci_model import (blob as blob_model, manifest as manifest_model, tag as tag_model) -# @TODO(ant31): cnr for retro-compat prepare a data migration LIST_MEDIA_TYPE = 'application/vnd.cnr.manifest.list.v0.json' SCHEMA_VERSION = 'v0' @@ -104,7 +103,7 @@ def create_app_release(repo, tag_name, manifest_data, digest, force=False): list_json.insert(insert_point, manifest.manifest_json) list_manifest_ids.insert(insert_point, manifest.id) manifestlist = manifest_list_model.get_or_create_manifest_list(list_json, LIST_MEDIA_TYPE, - SCHEMA_VERSION) + SCHEMA_VERSION) manifest_list_model.create_manifestlistmanifest(manifestlist, list_manifest_ids, list_json) tag = tag_model.create_or_update_tag(repo, tag_name, manifest_list=manifestlist, diff --git a/data/oci_model/tag.py b/data/oci_model/tag.py index 69412e998..56bea5a29 100644 --- a/data/oci_model/tag.py +++ b/data/oci_model/tag.py @@ -1,6 +1,6 @@ import logging -from appr.models.package_base import manifest_media_type +from cnr.models.package_base import manifest_media_type from peewee import IntegrityError from data.model import (db_transaction, TagAlreadyCreatedException) diff --git a/endpoints/appr/__init__.py b/endpoints/appr/__init__.py index 91c2cf851..c998d8a95 100644 --- a/endpoints/appr/__init__.py +++ b/endpoints/appr/__init__.py @@ -2,7 +2,7 @@ import logging from functools import wraps -from appr.exception import Forbidden +from cnr.exception import Forbidden from flask import Blueprint from app import metric_queue diff --git a/endpoints/appr/appr_backend.py b/endpoints/appr/cnr_backend.py similarity index 94% rename from endpoints/appr/appr_backend.py rename to endpoints/appr/cnr_backend.py index 7c84a5e6a..86a5195d8 100644 --- a/endpoints/appr/appr_backend.py +++ b/endpoints/appr/cnr_backend.py @@ -1,10 +1,10 @@ import base64 -from appr.exception import raise_package_not_found -from appr.models.blob_base import BlobBase -from appr.models.channel_base import ChannelBase -from appr.models.db_base import ApprDB -from appr.models.package_base import PackageBase, manifest_media_type +from cnr.exception import raise_package_not_found +from cnr.models.blob_base import BlobBase +from cnr.models.channel_base import ChannelBase +from cnr.models.db_base import CnrDB +from cnr.models.package_base import PackageBase, manifest_media_type from app import storage from endpoints.appr.models_oci import model @@ -13,7 +13,6 @@ from endpoints.appr.models_oci import model class Blob(BlobBase): @classmethod def upload_url(cls, digest): - """ S3 bucket path """ return "cnr/blobs/sha256/%s/%s" % (digest[0:2], digest) def save(self, content_media_type): @@ -165,7 +164,7 @@ class Package(PackageBase): raise NotImplementedError -class QuayDB(ApprDB): +class QuayDB(CnrDB): """ Wrapper Class to embed all CNR Models """ Channel = Channel Package = Package diff --git a/endpoints/appr/models_interface.py b/endpoints/appr/models_interface.py index 5ba5b270e..6ebf949ac 100644 --- a/endpoints/appr/models_interface.py +++ b/endpoints/appr/models_interface.py @@ -112,7 +112,7 @@ class AppRegistryDataInterface(object): pass @abstractmethod - def store_blob(self, apprblob, content_media_type): + def store_blob(self, cnrblob, content_media_type): """ Upload the blob content to a storage location and creates a Blob entry in the DB. diff --git a/endpoints/appr/models_oci.py b/endpoints/appr/models_oci.py index c89145bc0..75d5050fa 100644 --- a/endpoints/appr/models_oci.py +++ b/endpoints/appr/models_oci.py @@ -1,8 +1,8 @@ from datetime import datetime -import appr.semver +import cnr.semver -from appr.exception import raise_package_not_found, raise_channel_not_found +from cnr.exception import raise_package_not_found, raise_channel_not_found import data.model @@ -76,7 +76,7 @@ class OCIAppModel(AppRegistryDataInterface): if not releases: continue available_releases = [ - str(x) for x in sorted(appr.semver.versions(releases, False), reverse=True)] + str(x) for x in sorted(cnr.semver.versions(releases, False), reverse=True)] channels = None if with_channels: channels = [ @@ -173,19 +173,19 @@ class OCIAppModel(AppRegistryDataInterface): MediaType.DoesNotExist): raise_package_not_found(package_name, release, media_type) - def store_blob(self, apprblob, content_media_type): - fp = apprblob.packager.io_file - path = apprblob.upload_url(apprblob.digest) + def store_blob(self, cnrblob, content_media_type): + fp = cnrblob.packager.io_file + path = cnrblob.upload_url(cnrblob.digest) locations = storage.preferred_locations storage.stream_write(locations, path, fp, 'application/x-gzip') - db_blob = oci_model.blob.get_or_create_blob(apprblob.digest, apprblob.size, content_media_type, + db_blob = oci_model.blob.get_or_create_blob(cnrblob.digest, cnrblob.size, content_media_type, locations) return BlobDescriptor(mediaType=content_media_type, digest=_strip_sha256_header(db_blob.digest), size=db_blob.size, urls=[]) def create_release(self, package, user, visibility, force=False): """ Add an app-release to a repository - package is an instance of data.appr.package.Package + package is an instance of data.cnr.package.Package """ manifest = package.manifest() diff --git a/endpoints/appr/registry.py b/endpoints/appr/registry.py index 3e686cd39..8d7e988b3 100644 --- a/endpoints/appr/registry.py +++ b/endpoints/appr/registry.py @@ -1,11 +1,11 @@ import logging from base64 import b64encode -import appr -from appr.api.impl import registry as appr_registry -from appr.api.registry import _pull, repo_name -from appr.exception import ( - ChannelNotFound, ApprException, Forbidden, InvalidParams, InvalidRelease, InvalidUsage, +import cnr +from cnr.api.impl import registry as cnr_registry +from cnr.api.registry import _pull, repo_name +from cnr.exception import ( + ChannelNotFound, CnrException, Forbidden, InvalidParams, InvalidRelease, InvalidUsage, PackageAlreadyExists, PackageNotFound, PackageReleaseNotFound, UnableToLockResource, UnauthorizedAccess, Unsupported) from flask import jsonify, request @@ -14,7 +14,7 @@ from auth.auth_context import get_authenticated_user from auth.decorators import process_auth from auth.permissions import CreateRepositoryPermission, ModifyRepositoryPermission from endpoints.appr import appr_bp, require_app_repo_read, require_app_repo_write -from endpoints.appr.appr_backend import Blob, Channel, Package, User +from endpoints.appr.cnr_backend import Blob, Channel, Package, User from endpoints.appr.decorators import disallow_for_image_repository from endpoints.appr.models_oci import model from endpoints.decorators import anon_allowed, anon_protect @@ -31,7 +31,7 @@ logger = logging.getLogger(__name__) @appr_bp.errorhandler(UnauthorizedAccess) @appr_bp.errorhandler(PackageNotFound) @appr_bp.errorhandler(PackageReleaseNotFound) -@appr_bp.errorhandler(ApprException) +@appr_bp.errorhandler(CnrException) @appr_bp.errorhandler(InvalidUsage) @appr_bp.errorhandler(InvalidParams) @appr_bp.errorhandler(ChannelNotFound) @@ -44,7 +44,7 @@ def render_error(error): @appr_bp.route("/version") @anon_allowed def version(): - return jsonify({"appr-api": appr.__version__}) + return jsonify({"cnr-api": cnr.__version__}) @appr_bp.route("/api/v1/users/login", methods=['POST']) @@ -73,7 +73,7 @@ def login(): @anon_protect def blobs(namespace, package_name, digest): reponame = repo_name(namespace, package_name) - data = appr_registry.pull_blob(reponame, digest, blob_class=Blob) + data = cnr_registry.pull_blob(reponame, digest, blob_class=Blob) json_format = request.args.get('format', None) == 'json' return _pull(data, json_format=json_format) @@ -89,7 +89,7 @@ def list_packages(): username = None if user: username = user.username - result_data = appr_registry.list_packages(namespace, package_class=Package, search=query, + result_data = cnr_registry.list_packages(namespace, package_class=Package, search=query, media_type=media_type, username=username) return jsonify(result_data) @@ -102,7 +102,7 @@ def list_packages(): @anon_protect def delete_package(namespace, package_name, release, media_type): reponame = repo_name(namespace, package_name) - result = appr_registry.delete_package(reponame, release, media_type, package_class=Package) + result = cnr_registry.delete_package(reponame, release, media_type, package_class=Package) model.log_action('delete_tag', namespace, repo_name=package_name, metadata={'release': release, 'mediatype': media_type}) return jsonify(result) @@ -116,7 +116,7 @@ def delete_package(namespace, package_name, release, media_type): @anon_protect def show_package(namespace, package_name, release, media_type): reponame = repo_name(namespace, package_name) - result = appr_registry.show_package(reponame, release, media_type, channel_class=Channel, + result = cnr_registry.show_package(reponame, release, media_type, channel_class=Channel, package_class=Package) return jsonify(result) @@ -129,7 +129,7 @@ def show_package(namespace, package_name, release, media_type): def show_package_releases(namespace, package_name): reponame = repo_name(namespace, package_name) media_type = request.args.get('media_type', None) - result = appr_registry.show_package_releases(reponame, media_type=media_type, + result = cnr_registry.show_package_releases(reponame, media_type=media_type, package_class=Package) return jsonify(result) @@ -141,7 +141,7 @@ def show_package_releases(namespace, package_name): @anon_protect def show_package_release_manifests(namespace, package_name, release): reponame = repo_name(namespace, package_name) - result = appr_registry.show_package_manifests(reponame, release, package_class=Package) + result = cnr_registry.show_package_manifests(reponame, release, package_class=Package) return jsonify(result) @@ -155,7 +155,7 @@ def show_package_release_manifests(namespace, package_name, release): def pull(namespace, package_name, release, media_type): reponame = repo_name(namespace, package_name) logger.info("pull %s", reponame) - data = appr_registry.pull(reponame, release, media_type, Package, blob_class=Blob) + data = cnr_registry.pull(reponame, release, media_type, Package, blob_class=Blob) model.log_action('pull_repo', namespace, repo_name=package_name, metadata={'release': release, 'mediatype': media_type}) json_format = request.args.get('format', None) == 'json' @@ -199,7 +199,7 @@ def push(namespace, package_name): force = request.args.get('force', 'false') == 'true' blob = Blob(reponame, values['blob']) - app_release = appr_registry.push(reponame, release_version, media_type, blob, force, + app_release = cnr_registry.push(reponame, release_version, media_type, blob, force, package_class=Package, user=owner, visibility=private) model.log_action('push_repo', namespace, repo_name=package_name, metadata={'release': release_version}) @@ -216,7 +216,7 @@ def search_packages(): if user: username = user.username - search_results = appr_registry.search(query, Package, username=username) + search_results = cnr_registry.search(query, Package, username=username) return jsonify(search_results) @@ -228,7 +228,7 @@ def search_packages(): @anon_protect def list_channels(namespace, package_name): reponame = repo_name(namespace, package_name) - return jsonify(appr_registry.list_channels(reponame, channel_class=Channel)) + return jsonify(cnr_registry.list_channels(reponame, channel_class=Channel)) @appr_bp.route( @@ -239,7 +239,7 @@ def list_channels(namespace, package_name): @anon_protect def show_channel(namespace, package_name, channel_name): reponame = repo_name(namespace, package_name) - channel = appr_registry.show_channel(reponame, channel_name, channel_class=Channel) + channel = cnr_registry.show_channel(reponame, channel_name, channel_class=Channel) return jsonify(channel) @@ -253,7 +253,7 @@ def show_channel(namespace, package_name, channel_name): def add_channel_release(namespace, package_name, channel_name, release): _check_channel_name(channel_name, release) reponame = repo_name(namespace, package_name) - result = appr_registry.add_channel_release(reponame, channel_name, release, channel_class=Channel, + result = cnr_registry.add_channel_release(reponame, channel_name, release, channel_class=Channel, package_class=Package) model.log_action('create_tag', namespace, repo_name=package_name, metadata={'channel': channel_name, 'release': release}) @@ -284,7 +284,7 @@ def _check_channel_name(channel_name, release=None): def delete_channel_release(namespace, package_name, channel_name, release): _check_channel_name(channel_name, release) reponame = repo_name(namespace, package_name) - result = appr_registry.delete_channel_release(reponame, channel_name, release, + result = cnr_registry.delete_channel_release(reponame, channel_name, release, channel_class=Channel, package_class=Package) model.log_action('delete_tag', namespace, repo_name=package_name, metadata={'channel': channel_name, 'release': release}) @@ -301,7 +301,7 @@ def delete_channel_release(namespace, package_name, channel_name, release): def delete_channel(namespace, package_name, channel_name): _check_channel_name(channel_name) reponame = repo_name(namespace, package_name) - result = appr_registry.delete_channel(reponame, channel_name, channel_class=Channel) + result = cnr_registry.delete_channel(reponame, channel_name, channel_class=Channel) model.log_action('delete_tag', namespace, repo_name=package_name, metadata={'channel': channel_name}) return jsonify(result) diff --git a/endpoints/appr/test/test_api.py b/endpoints/appr/test/test_api.py index 642477c06..b3064e681 100644 --- a/endpoints/appr/test/test_api.py +++ b/endpoints/appr/test/test_api.py @@ -2,16 +2,16 @@ import uuid import pytest -from appr.tests.conftest import * -from appr.tests.test_apiserver import BaseTestServer -from appr.tests.test_models import ApprTestModels +from cnr.tests.conftest import * +from cnr.tests.test_apiserver import BaseTestServer +from cnr.tests.test_models import CnrTestModels import data.oci_model.blob as oci_blob from data.database import User from data.model import organization, user from endpoints.appr import registry # Needed to register the endpoint -from endpoints.appr.appr_backend import Channel, Package, QuayDB +from endpoints.appr.cnr_backend import Channel, Package, QuayDB from endpoints.appr.models_oci import model as oci_app_model from test.fixtures import * @@ -70,14 +70,14 @@ class PackageTest(Package): @pytest.fixture(autouse=True) def quaydb(monkeypatch, app): - monkeypatch.setattr('endpoints.appr.appr_backend.QuayDB.Package', PackageTest) - monkeypatch.setattr('endpoints.appr.appr_backend.Package', PackageTest) + monkeypatch.setattr('endpoints.appr.cnr_backend.QuayDB.Package', PackageTest) + monkeypatch.setattr('endpoints.appr.cnr_backend.Package', PackageTest) monkeypatch.setattr('endpoints.appr.registry.Package', PackageTest) - monkeypatch.setattr('appr.models.Package', PackageTest) + monkeypatch.setattr('cnr.models.Package', PackageTest) - monkeypatch.setattr('endpoints.appr.appr_backend.QuayDB.Channel', ChannelTest) + monkeypatch.setattr('endpoints.appr.cnr_backend.QuayDB.Channel', ChannelTest) monkeypatch.setattr('endpoints.appr.registry.Channel', ChannelTest) - monkeypatch.setattr('appr.models.Channel', ChannelTest) + monkeypatch.setattr('cnr.models.Channel', ChannelTest) class TestServerQuayDB(BaseTestServer): @@ -118,13 +118,13 @@ class TestServerQuayDB(BaseTestServer): pass -class TestQuayModels(ApprTestModels): +class TestQuayModels(CnrTestModels): DB_CLASS = QuayDB @pytest.mark.xfail def test_channel_delete_releases(self, db_with_data1): """ Can't remove a release from the channel, only delete the channel entirely """ - ApprTestModels.test_channel_delete_releases(self, db_with_data1) + CnrTestModels.test_channel_delete_releases(self, db_with_data1) @pytest.mark.xfail def test_forbiddeb_db_reset(self, db_class): diff --git a/initdb.py b/initdb.py index ee05c28d3..c6b36e18e 100644 --- a/initdb.py +++ b/initdb.py @@ -404,16 +404,15 @@ def initialize_database(): MediaType.create(name='text/plain') MediaType.create(name='application/json') MediaType.create(name='text/markdown') - for mediatype in ['appr', 'cnr']: - MediaType.create(name='application/vnd.%s.blob.v0.tar+gzip' % mediatype) - MediaType.create(name='application/vnd.%s.package-manifest.helm.v0.json' % mediatype) - MediaType.create(name='application/vnd.%s.package-manifest.kpm.v0.json' % mediatype) - MediaType.create(name='application/vnd.%s.package-manifest.docker-compose.v0.json' % mediatype) - MediaType.create(name='application/vnd.%s.package.kpm.v0.tar+gzip' % mediatype) - MediaType.create(name='application/vnd.%s.package.helm.v0.tar+gzip' % mediatype) - MediaType.create(name='application/vnd.%s.package.docker-compose.v0.tar+gzip' % mediatype) - MediaType.create(name='application/vnd.%s.manifests.v0.json' % mediatype) - MediaType.create(name='application/vnd.%s.manifest.list.v0.json' % mediatype) + MediaType.create(name='application/vnd.cnr.blob.v0.tar+gzip') + MediaType.create(name='application/vnd.cnr.package-manifest.helm.v0.json') + MediaType.create(name='application/vnd.cnr.package-manifest.kpm.v0.json') + MediaType.create(name='application/vnd.cnr.package-manifest.docker-compose.v0.json') + MediaType.create(name='application/vnd.cnr.package.kpm.v0.tar+gzip') + MediaType.create(name='application/vnd.cnr.package.helm.v0.tar+gzip') + MediaType.create(name='application/vnd.cnr.package.docker-compose.v0.tar+gzip') + MediaType.create(name='application/vnd.cnr.manifests.v0.json') + MediaType.create(name='application/vnd.cnr.manifest.list.v0.json') LabelSourceType.create(name='manifest') LabelSourceType.create(name='api', mutable=True) diff --git a/requirements-nover.txt b/requirements-nover.txt index 3aac5b650..6bad4c9b9 100644 --- a/requirements-nover.txt +++ b/requirements-nover.txt @@ -8,7 +8,7 @@ -e git+https://github.com/coreos/pyapi-gitlab.git@timeout#egg=pyapi-gitlab -e git+https://github.com/coreos/resumablehashlib.git#egg=resumablehashlib -e git+https://github.com/jepcastelein/marketo-rest-python.git#egg=marketorestpython --e git+https://github.com/app-registry/appr.git@b80028a1fa6f52c314405690b2d4ffeaccccae5a#egg=appr +-e git+https://github.com/app-registry/appr-server.git#egg=cnr-server APScheduler==3.0.5 Flask-Login Flask-Mail diff --git a/requirements.txt b/requirements.txt index 756b34689..96ef9a3c6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ alembic==0.9.1 -e git+https://github.com/coreos/resumablehashlib.git@b1b631249589b07adf40e0ee545b323a501340b4#egg=resumablehashlib -e git+https://github.com/DevTable/aniso8601-fake.git@bd7762c7dea0498706d3f57db60cd8a8af44ba90#egg=aniso8601 -e git+https://github.com/DevTable/anunidecode.git@d59236a822e578ba3a0e5e5abbd3855873fa7a88#egg=anunidecode --e git+https://github.com/app-registry/appr.git@b80028a1fa6f52c314405690b2d4ffeaccccae5a#egg=appr +-e git+https://github.com/app-registry/appr-server.git@c2ef3b88afe926a92ef5f2e11e7d4a259e286a17#egg=cnr_server -e git+https://github.com/DevTable/container-cloud-config.git@bce675537904175f6975024a4c89269027ea6792#egg=container_cloud_config -e git+https://github.com/DevTable/python-etcd.git@f1168cb02a2a8c83bec1108c6fcd8615ef463b14#egg=python_etcd -e git+https://github.com/jarus/flask-testing.git@18baff32969a0634a414ce61d2dd4a77433817a8#egg=Flask_Testing diff --git a/test/data/test.db b/test/data/test.db index a7c3b4fefa7860e7199d66ac40541ba64a2f9456..e109172d6a86edc69ff686a6a5063c939d785ec6 100644 GIT binary patch delta 76545 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 E584;;h5!Hn delta 70503 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
a`IulQrUqnn^zqP8f)2 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 I*RS6E1KO!al>h($