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)
Esempio n. 2
0
 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,
        )
Esempio n. 4
0
    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())