def test_subscribe_user_update_existing(self, mailchimp):
        """Test subscribe user update existing works."""
        with patch.dict(self.flask_app.config, {
                'MAILCHIMP_API_KEY': 'k-3',
                'MAILCHIMP_LIST_ID': 1
        }):
            user = UserFactory.create()
            nw = Newsletter()
            nw.init_app(self.flask_app)

            nw.subscribe_user(user, update=True)

            email = {'email': user.email_addr}
            merge_vars = {'FNAME': user.fullname}
            url = "%s/lists/1/members/%s" % (
                nw.root, nw.get_email_hash(user.email_addr))
            data = dict(email_address=user.email_addr,
                        status='pending',
                        merge_fields=dict(FNAME=user.fullname),
                        status_if_new='pending')
            mailchimp.assert_called_with(
                url,
                data=json.dumps(data),
                headers={'content-type': 'application/json'},
                auth=nw.auth)
    def test_delete_user_returns_false(self, mailchimp):
        """Test delete user from mailchimp returns false."""
        with patch.dict(self.flask_app.config, {'MAILCHIMP_API_KEY': 'k-3',
                                                'MAILCHIMP_LIST_ID': 1}):
            nw = Newsletter()
            nw.init_app(self.flask_app)

            mailchimp.side_effect = [FakeResponse(text=json.dumps(dict(status=404)),
                                                 json=lambda : '',
                                               status_code=404)]

            res = nw.delete_user('email')

            url = "%s/lists/1/members/%s" % (nw.root,
                                             nw.get_email_hash('email'))
            mailchimp.assert_called_with(url, auth=nw.auth)
            assert res is False, res
Example #3
0
    def test_subscribe_user_update_existing(self, mailchimp):
        """Test subscribe user update existing works."""
        with patch.dict(self.flask_app.config, {'MAILCHIMP_API_KEY': 'k-3',
                                                'MAILCHIMP_LIST_ID': 1}):
            user = UserFactory.create()
            nw = Newsletter()
            nw.init_app(self.flask_app)

            nw.subscribe_user(user, update=True)

            email = {'email': user.email_addr}
            merge_vars = {'FNAME': user.fullname}
            url = "%s/lists/1/members/%s" % (nw.root,
                                             nw.get_email_hash(user.email_addr))
            data = dict(email_address=user.email_addr,
                        status='pending',
                        status_if_new='pending',
                        merge_fields=dict(FNAME=user.fullname))
            mailchimp.assert_called_with(url, data=json.dumps(data),
                                         headers={'content-type':
                                                  'application/json'},
                                         auth=nw.auth)