def test_reupload_legacy_header_only(self, make_checksum_mock): """ STR the bug this test fixes: - Reupload a legacy theme (/w footer == leg.png) legacy, header only. - The header would get saved as 'pending_header.png'. - The footer would get saved as 'footer.png'. - On approving, it would see 'footer.png' !== 'leg.png' - It run move_stored_file('footer.png', 'leg.png'). - But footer.png does not exist. BAM BUG. Footer has been removed in Issue #5379 https://github.com/mozilla/addons-server/issues/5379 """ make_checksum_mock.return_value = 'comechecksome' self.theme.header = 'Legacy-header3H.png' self.theme.save() data = self.get_dict(header_hash='arthro') self.form = EditThemeForm(data, request=self.request, instance=self.instance) assert self.form.is_valid() self.form.save() rqt = RereviewQueueTheme.objects.get() assert rqt.header == 'pending_header.png'
def save_success(self): other_cat = Category.objects.create(type=amo.ADDON_PERSONA) self.data = { 'accentcolor': '#EFF0FF', 'category': other_cat.id, 'license': amo.LICENSE_CC_BY_NC_SA.id, 'slug': 'swag-lifestyle', 'tags': 'ag', 'textcolor': '#CACACA', 'name_en-us': 'All Day I Dream About Swag', 'description_en-us': 'ADIDAS', } self.form = EditThemeForm(self.data, request=self.request, instance=self.instance) # Compare form initial data with post data. eq_data = self.get_dict() for k in [ k for k in self.form.initial.keys() if k not in ['name', 'description'] ]: assert self.form.initial[k] == eq_data[k] assert self.form.data == self.data assert self.form.is_valid(), self.form.errors self.form.save()
def test_localize_name_description(self): data = self.get_dict(name_de='name_de', description_de='description_de') self.form = EditThemeForm(data, request=self.request, instance=self.instance) assert self.form.is_valid(), self.form.errors self.form.save()
def test_reupload(self, save_persona_image_mock, create_persona_preview_images_mock, make_checksum_mock): make_checksum_mock.return_value = 'checksumbeforeyouwrecksome' data = self.get_dict(header_hash='y0l0', footer_hash='abab') self.form = EditThemeForm(data, request=self.request, instance=self.instance) assert self.form.is_valid() self.form.save() dst = os.path.join(user_media_path('addons'), str(self.instance.id)) header_src = os.path.join(settings.TMP_PATH, 'persona_header', u'y0l0') footer_src = os.path.join(settings.TMP_PATH, 'persona_footer', u'abab') assert save_persona_image_mock.mock_calls == ([ mock.call(src=header_src, full_dst=os.path.join(dst, 'pending_header.png')), mock.call(src=footer_src, full_dst=os.path.join(dst, 'pending_footer.png')) ]) rqt = RereviewQueueTheme.objects.filter(theme=self.instance.persona) assert rqt.count() == 1 assert rqt[0].header == 'pending_header.png' assert rqt[0].footer == 'pending_footer.png' assert not rqt[0].dupe_persona
def test_reupload_legacy_header_only(self): """ STR the bug this test fixes: - Reupload a legacy theme (/w footer == leg.png) legacy, header only. - The header would get saved as 'pending_header.png'. - The footer would get saved as 'footer.png'. - On approving, it would see 'footer.png' !== 'leg.png' - It run move_stored_file('footer.png', 'leg.png'). - But footer.png does not exist. BAM BUG. """ self.theme.header = 'Legacy-header3H.png' self.theme.footer = 'Legacy-footer3H-Copy.jpg' self.theme.save() data = self.get_dict(header_hash='arthro') self.form = EditThemeForm(data, request=self.request, instance=self.instance) eq_(self.form.is_valid(), True) self.form.save() rqt = RereviewQueueTheme.objects.get() eq_(rqt.header, 'pending_header.png') eq_(rqt.footer, 'Legacy-footer3H-Copy.jpg')
def test_initial(self): self.form = EditThemeForm(None, request=self.request, instance=self.instance) # Compare form initial data with post data. eq_data = self.get_dict() for k in [k for k in self.form.initial.keys() if k not in ['name', 'description']]: assert self.form.initial[k] == eq_data[k]
def test_name_unique(self): data = self.get_dict(**{'name_en-us': 'Bands Make You Dance'}) Addon.objects.create(type=amo.ADDON_PERSONA, status=amo.STATUS_PUBLIC, name=data['name_en-us']) self.form = EditThemeForm(data, request=self.request, instance=self.instance) assert not self.form.is_valid() assert self.form.errors == { 'name': ['This name is already in use. Please choose another.'] }
def test_reupload_duplicate(self, make_checksum_mock): make_checksum_mock.return_value = 'checksumbeforeyouwrecksome' theme = amo.tests.addon_factory(type=amo.ADDON_PERSONA) theme.persona.checksum = 'checksumbeforeyouwrecksome' theme.persona.save() data = self.get_dict(header_hash='head', footer_hash='foot') self.form = EditThemeForm(data, request=self.request, instance=self.instance) assert self.form.is_valid() self.form.save() rqt = RereviewQueueTheme.objects.get(theme=self.instance.persona) assert rqt.dupe_persona == theme.persona
def test_name_unique_multiple_locale_conflicts(self): name = {'name_en-us': 'English', 'name_es': u'Español'} data = self.get_dict(**name) Addon.objects.create(type=amo.ADDON_PERSONA, status=amo.STATUS_PUBLIC, name={ 'en-us': 'English', 'es': u'Español' }) self.form = EditThemeForm(data, request=self.request, instance=self.instance) assert not self.form.is_valid() assert self.form.errors == { 'name': ['This name is already in use. Please choose another.'] }