def test_load_rules_from_excel(self): file_data = open( "%s/assets/redirector_config_invalid.xlsx" % os.path.split(__file__)[0], 'r') rules = load_rules_from_excel(file_data) self.assertEquals([{ 'destination': u'/Plone', 'source_path': u'/theploneasdf' }, { 'destination': u'http://www.google.ch/', 'source_path': u'/google' }, { 'destination': u'/ziel', 'source_path': u'/test' }, { 'destination': '', 'source_path': u'/bla' }, { 'destination': u'/gnarg', 'source_path': '' }, { 'destination': u'/same', 'source_path': u'/same' }], rules)
def validate(self, value): if not value: raise Invalid(_(u'missing_input_data', default=u'Please upload a rules excel file.')) excel_file = StringIO(value.data) rules = load_rules_from_excel(excel_file) map(self.validate_row, enumerate(rules, RULES_START_ROW))
def test_load_rules_from_excel(self): file_data = open("%s/assets/redirector_config_invalid.xlsx" % os.path.split(__file__)[0], "r") rules = load_rules_from_excel(file_data) self.assertEquals( [ {"destination": u"/Plone", "source_path": u"/theploneasdf"}, {"destination": u"http://www.google.ch/", "source_path": u"/google"}, {"destination": u"/ziel", "source_path": u"/test"}, {"destination": "", "source_path": u"/bla"}, {"destination": u"/gnarg", "source_path": ""}, {"destination": u"/same", "source_path": u"/same"}, ], rules, )
def handleApply(self, action): data, errors = self.extractData() if errors: # since we have only one field we can copy the error message # to make it more visible self.status = errors[0].message return excel_file = StringIO(data['rules_file'].data) rules = load_rules_from_excel(excel_file) rconfig = IRedirectConfig(self.context) rconfig.rules = rules messages = IStatusMessage(self.request) messages.add(_("The redirect config has been replaced."), type=u'info') self.request.RESPONSE.redirect(self.context.absolute_url())