From 1a3e7a5e0dc6b57e603654e51ac97e3e64b9cf03 Mon Sep 17 00:00:00 2001 From: gordon Date: Tue, 12 Mar 2019 14:15:58 +0100 Subject: [PATCH] Fix Factories for dev data --- api/funkwhale_api/factories.py | 22 ++++++++++++++++++++++ changes/changelog.d/factories.bugfix | 1 + 2 files changed, 23 insertions(+) create mode 100644 changes/changelog.d/factories.bugfix diff --git a/api/funkwhale_api/factories.py b/api/funkwhale_api/factories.py index 5db75fd58..472ff3feb 100644 --- a/api/funkwhale_api/factories.py +++ b/api/funkwhale_api/factories.py @@ -1,6 +1,9 @@ +import uuid import factory import persisting_theory +from faker.providers import internet as internet_provider + class FactoriesRegistry(persisting_theory.Registry): look_into = "factories" @@ -39,3 +42,22 @@ class NoUpdateOnCreate: @classmethod def _after_postgeneration(cls, instance, create, results=None): return + + +class FunkwhaleProvider(internet_provider.Provider): + """ + Our own faker data generator, since built-in ones are sometimes + not random enough + """ + + def federation_url(self, prefix=""): + def path_generator(): + return "{}/{}".format(prefix, uuid.uuid4()) + + domain = self.domain_name() + protocol = "https" + path = path_generator() + return "{}://{}/{}".format(protocol, domain, path) + + +factory.Faker.add_provider(FunkwhaleProvider) diff --git a/changes/changelog.d/factories.bugfix b/changes/changelog.d/factories.bugfix new file mode 100644 index 000000000..58fa58074 --- /dev/null +++ b/changes/changelog.d/factories.bugfix @@ -0,0 +1 @@ +Fixed dev command for fake data creation (!664)