def test_cleanup_extracted_file(): with freeze_time('2017-01-08 10:01:00'): viewer = FileViewer(make_file(1, get_file('webextension.xpi'))) assert '0108' in viewer.dest assert not os.path.exists(viewer.dest) viewer.extract() assert os.path.exists(viewer.dest) # Cleaning up only cleans up yesterdays files so it doesn't touch # us today... cleanup_extracted_file() assert os.path.exists(viewer.dest) # Even hours later we don't cleanup yet... with freeze_time('2017-01-08 23:59:00'): assert os.path.exists(viewer.dest) cleanup_extracted_file() assert os.path.exists(viewer.dest) # But yesterday... we'll cleanup properly with freeze_time('2017-01-07 10:01:00'): assert os.path.exists(viewer.dest) cleanup_extracted_file() assert not os.path.exists(viewer.dest)
def upload_addon(self, xpi=None): """Upload an addon via devhub. This will use the override validation option. """ file_path = get_file(xpi) self.selenium.find_element(*self._submit_addon_btn_locator).click() # Accept agreement devhub_agreement = DevHubAgreement( self.selenium, self.base_url ).wait_for_page_to_load() devhub_agreement.accept_agreement() self.selenium.find_element(*self._continue_sub_btn_locator).click() # Upload upload = self.selenium.find_element(*self._upload_addon_locator) upload.send_keys(file_path) self.wait.until( expected.element_to_be_clickable(self._submit_upload_btn_locator) ) self.selenium.find_element(*self._submit_upload_btn_locator).click() # Submit no source code devhub_source = DevHubSource( self.selenium, self.base_url ).wait_for_page_to_load() devhub_source.dont_submit_source_code() from pages.desktop.devhub_submission import DevhubSubmission devhub = DevhubSubmission(self.selenium, self.base_url) return devhub.wait_for_page_to_load()
def upload_addon(self, xpi=None): """Upload an addon via devhub. This will use the override validation option. """ file_path = get_file(xpi) self.selenium.find_element(*self._submit_addon_btn_locator).click() # Accept agreement devhub_agreement = DevHubAgreement( self.selenium, self.base_url).wait_for_page_to_load() devhub_agreement.accept_agreement() self.selenium.find_element(*self._continue_sub_btn_locator).click() # Upload upload = self.selenium.find_element(*self._upload_addon_locator) upload.send_keys(file_path) self.wait.until( expected.element_to_be_clickable(self._submit_upload_btn_locator)) self.selenium.find_element(*self._submit_upload_btn_locator).click() # Submit no source code devhub_source = DevHubSource(self.selenium, self.base_url).wait_for_page_to_load() devhub_source.dont_submit_source_code() from pages.desktop.devhub_submission import DevhubSubmission devhub = DevhubSubmission(self.selenium, self.base_url) return devhub.wait_for_page_to_load()
def upload_addon(self, xpi=None): """Upload an addon via devhub. This will use the override validation option. """ file_path = get_file(xpi) self.selenium.find_element(*self._submit_addon_btn_locator).click() # Accept agreement agreement = False count = 0 while agreement is not True and count < 5: try: devhub_agreement = DevHubAgreement( self.selenium, self.base_url).wait_for_page_to_load() devhub_agreement.accept_agreement() except TimeoutException: # Do nothing, the agreement has already been excepted pass except NoSuchElementException: pass try: self.selenium.find_element( *self._continue_sub_btn_locator).click() except NoSuchElementException as e: print(e) self.selenium.refresh count + 1 else: agreement = True # Upload upload_finished = False count = 0 while upload_finished is not True and count <= 5: try: upload = self.selenium.find_element( *self._upload_addon_locator) upload.send_keys(file_path) self.wait.until( expected.element_to_be_clickable( self._submit_upload_btn_locator)) self.selenium.find_element( *self._submit_upload_btn_locator).click() except TimeoutException: upload_finished = False except Exception as e: self.selenium.refresh if count == 5: raise e count + 1 else: upload_finished = True # Submit no source code devhub_source = DevHubSource(self.selenium, self.base_url).wait_for_page_to_load() devhub_source.dont_submit_source_code() from pages.desktop.devhub_submission import DevhubSubmission devhub = DevhubSubmission(self.selenium, self.base_url) return devhub.wait_for_page_to_load()
def test_parse_search_empty_shortname(): fname = get_file('search_empty_shortname.xml') with pytest.raises(forms.ValidationError) as excinfo: utils.parse_search(fname) assert ( six.text_type(excinfo.value.message) == 'Could not parse uploaded file, missing or empty <ShortName> element')
def test_parse_search_empty_shortname(): fname = get_file('search_empty_shortname.xml') with pytest.raises(forms.ValidationError) as excinfo: utils.parse_search(fname) assert ( six.text_type(excinfo.value.message) == 'Could not parse uploaded file, missing or empty <ShortName> element')
def test_parse_search_empty_shortname(): from olympia.files.tests.test_file_viewer import get_file fname = get_file('search_empty_shortname.xml') with pytest.raises(forms.ValidationError) as excinfo: utils.parse_search(fname) assert (str( excinfo.value.message ) == 'Could not parse uploaded file, missing or empty <ShortName> element')
def create_installable_addon(self): activate('en-US') # using whatever add-on you already have should work imho, otherwise # fall back to a new one for test purposes addon = self.create_featured_addon_with_version_for_install() # the user the add-on gets created with user = UserProfile.objects.get(username='******') user, _ = UserProfile.objects.get_or_create(pk=settings.TASK_USER_ID, defaults={ 'email': '*****@*****.**', 'username': '******' }) # generate a proper uploaded file that simulates what django requires # as request.POST file_to_upload = 'webextension_signed_already.xpi' file_path = get_file(file_to_upload) # make sure we are not using the file in the source-tree but a # temporary one to avoid the files get moved somewhere else and # deleted from source tree with copy_file_to_temp(file_path) as temporary_path: data = open(temporary_path).read() filedata = SimpleUploadedFile( file_to_upload, data, content_type=mimetypes.guess_type(file_to_upload)[0]) # now, lets upload the file into the system from olympia.devhub.views import handle_upload request = RequestFactory().get('/') request.user = user upload = handle_upload( filedata=filedata, request=request, channel=amo.RELEASE_CHANNEL_LISTED, addon=addon, ) # And let's create a new version for that upload. create_version_for_upload(upload.addon, upload, amo.RELEASE_CHANNEL_LISTED) # Change status to public addon.update(status=amo.STATUS_PUBLIC)
def create_installable_addon(self): activate('en-US') # using whatever add-on you already have should work imho, otherwise # fall back to a new one for test purposes addon = self.create_featured_addon_with_version_for_install() # the user the add-on gets created with user = UserProfile.objects.get(username='******') user, _ = UserProfile.objects.get_or_create( pk=settings.TASK_USER_ID, defaults={'email': '*****@*****.**', 'username': '******'}) # generate a proper uploaded file that simulates what django requires # as request.POST file_to_upload = 'webextension_signed_already.xpi' file_path = get_file(file_to_upload) # make sure we are not using the file in the source-tree but a # temporary one to avoid the files get moved somewhere else and # deleted from source tree with copy_file_to_temp(file_path) as temporary_path: data = open(temporary_path).read() filedata = SimpleUploadedFile( file_to_upload, data, content_type=mimetypes.guess_type(file_to_upload)[0]) # now, lets upload the file into the system from olympia.devhub.views import handle_upload request = RequestFactory().get('/') request.user = user upload = handle_upload( filedata=filedata, request=request, channel=amo.RELEASE_CHANNEL_LISTED, addon=addon, ) # And let's create a new version for that upload. create_version_for_upload( upload.addon, upload, amo.RELEASE_CHANNEL_LISTED) # Change status to public addon.update(status=amo.STATUS_PUBLIC)
def upload_addon(self, xpi=None): """Upload an addon via devhub. This will use the override validation option. """ file_path = get_file(xpi) self.selenium.find_element(*self._submit_addon_btn_locator).click() # Accept agreement try: devhub_agreement = DevHubAgreement( self.selenium, self.base_url ).wait_for_page_to_load() except TimeoutException: # Do nothing, the agreement has already been excepted pass else: devhub_agreement.accept_agreement() self.selenium.find_element(*self._continue_sub_btn_locator).click() # Upload upload_finished = False while upload_finished is not True: try: upload = self.selenium.find_element( *self._upload_addon_locator) upload.send_keys(file_path) self.wait.until( expected.element_to_be_clickable( self._submit_upload_btn_locator) ) self.selenium.find_element( *self._submit_upload_btn_locator).click() except TimeoutException: upload_finished = False except Exception: raise Exception else: upload_finished = True # Submit no source code devhub_source = DevHubSource( self.selenium, self.base_url ).wait_for_page_to_load() devhub_source.dont_submit_source_code() from pages.desktop.devhub_submission import DevhubSubmission devhub = DevhubSubmission(self.selenium, self.base_url) return devhub.wait_for_page_to_load()