Created
January 12, 2017 16:34
-
-
Save EnTeQuAk/2282a12aa02574836b5ad803641386be to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/olympia/landfill/generators.py b/src/olympia/landfill/generators.py | |
index 9f268a3056..76c355b1b8 100644 | |
--- a/src/olympia/landfill/generators.py | |
+++ b/src/olympia/landfill/generators.py | |
@@ -5,6 +5,7 @@ from itertools import cycle, islice | |
from django.db.models.signals import post_save | |
+from olympia import amo | |
from olympia.amo.utils import slugify | |
from olympia.addons.forms import icons | |
from olympia.addons.models import Addon, Persona, update_search_index | |
@@ -40,7 +41,7 @@ def _yield_name_and_cat(num, app=None, type=None): | |
yield (addon_name, cat) | |
-def create_addon(name, icon_type, application, **extra_kwargs): | |
+def create_addon(name, icon_type, application, release_channel, **extra_kwargs): | |
"""Create an addon with the given `name` and his version.""" | |
kwargs = { | |
'status': STATUS_PUBLIC, | |
@@ -56,9 +57,8 @@ def create_addon(name, icon_type, application, **extra_kwargs): | |
kwargs.update(extra_kwargs) | |
addon = Addon.objects.create(type=ADDON_EXTENSION, **kwargs) | |
- generate_version(addon=addon, app=application) | |
+ generate_version(addon=addon, app=application, channel=release_channel) | |
addon.update_version() | |
- addon.status = STATUS_PUBLIC | |
addon.save() | |
return addon | |
@@ -69,24 +69,52 @@ def generate_addons(num, owner, app_name): | |
post_save.disconnect(update_search_index, sender=Addon, | |
dispatch_uid='addons.search.index') | |
- featured_categories = collections.defaultdict(int) | |
user = generate_user(owner) | |
app = APPS[app_name] | |
default_icons = [x[0] for x in icons() if x[0].startswith('icon/')] | |
- for name, category in _yield_name_and_cat( | |
- num, app=app, type=ADDON_EXTENSION): | |
- # Use one of the default icons at random. | |
- icon_type = random.choice(default_icons) | |
- addon = create_addon(name=name, icon_type=icon_type, | |
- application=app) | |
- generate_addon_user_and_category(addon, user, category) | |
- generate_addon_preview(addon) | |
- generate_translations(addon) | |
- # Only feature 5 addons per category at max. | |
- if featured_categories[category] < 5: | |
- generate_collection(addon, app) | |
- featured_categories[category] += 1 | |
- generate_ratings(addon, 5) | |
+ | |
+ states = [ | |
+ (amo.RELEASE_CHANNEL_LISTED, amo.STATUS_NULL), | |
+ (amo.RELEASE_CHANNEL_LISTED, amo.STATUS_NOMINATED), | |
+ (amo.RELEASE_CHANNEL_LISTED, amo.STATUS_PUBLIC), | |
+ (amo.RELEASE_CHANNEL_LISTED, amo.STATUS_DISABLED), | |
+ (amo.RELEASE_CHANNEL_LISTED, amo.STATUS_DELETED), | |
+ (amo.RELEASE_CHANNEL_LISTED, amo.STATUS_REJECTED), | |
+ (amo.RELEASE_CHANNEL_LISTED, amo.STATUS_PENDING), | |
+ (amo.RELEASE_CHANNEL_UNLISTED, amo.STATUS_NULL), | |
+ ] | |
+ | |
+ # for release_channel, addon_status in states: | |
+ # name, category = list(_yield_name_and_cat(1, app=app, type=ADDON_EXTENSION))[0] | |
+ | |
+ # # Use one of the default icons at random. | |
+ # icon_type = random.choice(default_icons) | |
+ | |
+ # addon = create_addon(name=name, icon_type=icon_type, | |
+ # application=app, release_channel=release_channel, | |
+ # status=addon_status) | |
+ # print(addon.status) | |
+ # generate_addon_user_and_category(addon, user, category) | |
+ # generate_addon_preview(addon) | |
+ # generate_translations(addon) | |
+ | |
+ # # And one add-on that has versions in both channels | |
+ | |
+ icon_type = random.choice(default_icons) | |
+ | |
+ name, category = list(_yield_name_and_cat(1, app=app, type=ADDON_EXTENSION))[0] | |
+ addon = create_addon(name=name, icon_type=icon_type, | |
+ application=app, release_channel=amo.RELEASE_CHANNEL_LISTED) | |
+ | |
+ generate_addon_user_and_category(addon, user, category) | |
+ generate_addon_preview(addon) | |
+ generate_translations(addon) | |
+ | |
+ print('xxxxxxxxxxxxxxx', name) | |
+ generate_version( | |
+ addon=addon, app=app, | |
+ channel=amo.RELEASE_CHANNEL_UNLISTED) | |
+ | |
def create_theme(name, **extra_kwargs): | |
diff --git a/src/olympia/landfill/version.py b/src/olympia/landfill/version.py | |
index e8acaf76e9..33345a0424 100644 | |
--- a/src/olympia/landfill/version.py | |
+++ b/src/olympia/landfill/version.py | |
@@ -7,7 +7,7 @@ from olympia.files.models import File | |
from olympia.versions.models import ApplicationsVersions, Version | |
-def generate_version(addon, app=None): | |
+def generate_version(addon, app=None, channel=None): | |
""" | |
Generate a version for the given `addon` and the optional | |
`app`. The `app` is only useful for add-ons (not themes), | |
@@ -19,6 +19,8 @@ def generate_version(addon, app=None): | |
max_app_version = '50.0' | |
version = '%.1f' % random.uniform(0, 2) | |
v = Version.objects.create(addon=addon, version=version) | |
+ if channel is not None: | |
+ v.channel = channel | |
v.created = v.last_updated = datetime.now() | |
v.save() | |
if app is not None: # Not for themes. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment