def test_migrate_lwts_to_static_themes(add_static_theme_from_lwt_mock): persona_a = addon_factory(type=amo.ADDON_PERSONA, slug='theme_a') persona_b = addon_factory(type=amo.ADDON_PERSONA, slug='theme_b') addon_a = addon_factory(type=amo.ADDON_STATICTHEME) addon_b = addon_factory(type=amo.ADDON_STATICTHEME) add_static_theme_from_lwt_mock.side_effect = [addon_a, addon_b] # call the migration task, as the command would: migrate_lwts_to_static_themes([persona_a.id, persona_b.id]) assert MigratedLWT.objects.all().count() == 2 persona_a.reload() addon_a.reload() assert persona_a.status == amo.STATUS_DELETED assert MigratedLWT.objects.get( lightweight_theme=persona_a).static_theme == addon_a assert addon_a.slug == 'theme_a' persona_b.reload() addon_a.reload() assert persona_b.status == amo.STATUS_DELETED assert MigratedLWT.objects.get( lightweight_theme=persona_b).static_theme == addon_b assert addon_b.slug == 'theme_b'
def test_migrate_lwts_to_static_themes(add_static_theme_from_lwt_mock): # Include two LWT that won't get migrated sandwiched between some good LWTs persona_a = addon_factory(type=amo.ADDON_PERSONA, slug='theme_a') persona_none = addon_factory(type=amo.ADDON_PERSONA, slug='theme_none') persona_b = addon_factory(type=amo.ADDON_PERSONA, slug='theme_b') persona_raise = addon_factory(type=amo.ADDON_PERSONA, slug='theme_raise') persona_c = addon_factory(type=amo.ADDON_PERSONA, slug='theme_c') addon_a = addon_factory(type=amo.ADDON_STATICTHEME) addon_b = addon_factory(type=amo.ADDON_STATICTHEME) addon_c = addon_factory(type=amo.ADDON_STATICTHEME) add_static_theme_from_lwt_mock.side_effect = [ addon_a, False, addon_b, Exception('foo'), addon_c ] # call the migration task, as the command would: migrate_lwts_to_static_themes([ persona_a.id, persona_none.id, persona_b.id, persona_raise.id, persona_c.id ]) assert MigratedLWT.objects.all().count() == 3 assert Addon.objects.filter(type=amo.ADDON_PERSONA).count() == 2 persona_a.reload() addon_a.reload() assert persona_a.status == amo.STATUS_DELETED assert MigratedLWT.objects.get( lightweight_theme=persona_a).static_theme == addon_a assert addon_a.slug == 'theme_a' persona_b.reload() addon_b.reload() assert persona_b.status == amo.STATUS_DELETED assert MigratedLWT.objects.get( lightweight_theme=persona_b).static_theme == addon_b assert addon_b.slug == 'theme_b' persona_c.reload() addon_c.reload() assert persona_c.status == amo.STATUS_DELETED assert MigratedLWT.objects.get( lightweight_theme=persona_c).static_theme == addon_c assert addon_c.slug == 'theme_c' assert len(mail.outbox) == 0
def test_migrate_lwts_to_static_themes(add_static_theme_from_lwt_mock): # Include two LWT that won't get migrated sandwiched between some good LWTs persona_a = addon_factory(type=amo.ADDON_PERSONA, slug='theme_a') persona_none = addon_factory(type=amo.ADDON_PERSONA, slug='theme_none') persona_b = addon_factory(type=amo.ADDON_PERSONA, slug='theme_b') persona_raise = addon_factory(type=amo.ADDON_PERSONA, slug='theme_raise') persona_c = addon_factory(type=amo.ADDON_PERSONA, slug='theme_c') addon_a = addon_factory(type=amo.ADDON_STATICTHEME) addon_b = addon_factory(type=amo.ADDON_STATICTHEME) addon_c = addon_factory(type=amo.ADDON_STATICTHEME) add_static_theme_from_lwt_mock.side_effect = [ addon_a, False, addon_b, Exception('foo'), addon_c] # call the migration task, as the command would: migrate_lwts_to_static_themes( [persona_a.id, persona_none.id, persona_b.id, persona_raise.id, persona_c.id]) assert MigratedLWT.objects.all().count() == 3 assert Addon.objects.filter(type=amo.ADDON_PERSONA).count() == 2 persona_a.reload() addon_a.reload() assert persona_a.status == amo.STATUS_DELETED assert MigratedLWT.objects.get( lightweight_theme=persona_a).static_theme == addon_a assert addon_a.slug == 'theme_a' persona_b.reload() addon_b.reload() assert persona_b.status == amo.STATUS_DELETED assert MigratedLWT.objects.get( lightweight_theme=persona_b).static_theme == addon_b assert addon_b.slug == 'theme_b' persona_c.reload() addon_c.reload() assert persona_c.status == amo.STATUS_DELETED assert MigratedLWT.objects.get( lightweight_theme=persona_c).static_theme == addon_c assert addon_c.slug == 'theme_c' assert len(mail.outbox) == 0