コード例 #1
0
    def test_emarsys_events_not_empty(self):
        """
        Make sure there's a warning if no Emarsys events are configured.

        """
        configuration = {
            'EMARSYS_ACCOUNT': 'account',
            'EMARSYS_PASSWORD': '******',
            'EMARSYS_BASE_URI': 'base_uri',
            'EMARSYS_EVENTS': {}
        }
        messages = config.validate_configuration(configuration)

        self.assertSetEqual(
            _make_message_set(messages),
            _make_message_set([Warning('EMARSYS_EVENTS is empty')]))
コード例 #2
0
    def test_configuration_present(self):
        """
        Make sure there's an error if any of the needed EMARSYS_
        settings is missing.

        """
        configuration = {}
        messages = config.validate_configuration(configuration)

        self.assertSetEqual(
            _make_message_set(messages),
            _make_message_set([
                Critical('EMARSYS_ACCOUNT not set'),
                Critical('EMARSYS_PASSWORD not set'),
                Critical('EMARSYS_BASE_URI not set'),
                Critical('EMARSYS_EVENTS not set')]))
コード例 #3
0
    def test_configuration_integrity(self):
        """
        Make sure malformed `EMARSYS_EVENTS` settings will result
        in the right check error messages.

        See `django_emarsys.config.validate_configuration` for the
        expected structure.

        """
        configuration = {
            'EMARSYS_ACCOUNT': 'account',
            'EMARSYS_PASSWORD': '******',
            'EMARSYS_BASE_URI': 'base_uri',
            'EMARSYS_EVENTS': {
                '': [],
                'test event 1': {
                    'reused_arg': ("Reused", "auth.User"),
                    'arg': ("Reused", "auth.User"),
                    '': ("foobar", "auth.User"),
                    'invalid arg': ("", "auth.User"),
                    'not_reused_arg': ("Not Reused Name", "auth.User"),
                },
                'test event 2': {
                    'not_reused_arg': ("Not Reused Name", "auth.User"),
                },
                'test event 3': {
                    'user1': ("User1", "invalid_app.User"),
                    'user2': ("User2", "auth.InvalidModel"),
                    'user3': ("User3", "foo.bar.User"),
                    'user4': ("User4", "User"),
                    'user5': (),
                    'user6': (1, "auth.User"),
                    'user7': ("User7", 1),
                    'user8': "foo",
                },
                'töst üvänt,.!?;-#+* ß': {
                    'üser': ("Üser", "auth.User"),
                },
            },
        }

        messages = config.validate_configuration(configuration)

        self.assertSetEqual(
            _make_message_set(messages),
            _make_message_set([
                Error("invalid parameter name for event 'test event 1': ''"),
                Error("invalid parameter argument for event 'test event 1': ''"),  # noqa
                Error("invalid parameter argument for event 'test event 1': 'invalid arg'"),  # noqa
                Error("bad model 'invalid_app.User' for event 'test event 3': No installed app with label 'invalid_app'."),  # noqa
                Error("bad model 'auth.InvalidModel' for event 'test event 3': App 'auth' doesn't have a 'invalidmodel' model."),  # noqa
                Error("bad model 'foo.bar.User' for event 'test event 3': too many values to unpack"),  # noqa
                Error("bad model 'User' for event 'test event 3': need more than 1 value to unpack"),  # noqa
                Error("invalid parameter definition 'test event 3': 'user5' => ()"),  # noqa
                Error("bad model '1' for event 'test event 3': 'int' object has no attribute 'split'"),  # noqa
                Error("invalid parameter name for event 'test event 3': '1'"),
                Error("invalid parameter definition 'test event 3': 'user8' => foo"),  # noqa
                Error("invalid parameter argument for event 'töst üvänt,.!?;-#+* ß': 'üser'"),  # noqa

                Warning("invalid event name: ''"),
                Warning("reused parameter name for event 'test event 1': 'Reused'"),  # noqa
            ]))