Пример #1
0
    def test_ask_user_to_subscribe_returns_false_if_newsletter_prompted(self, mailchimp):
        nw = Newsletter()
        app = MagicMock()
        nw.init_app(app)
        user = UserFactory.build(newsletter_prompted=True)

        assert nw.ask_user_to_subscribe(user) is False
Пример #2
0
    def test_is_initialized_returns_true_after_calling_init_app(
            self, mailchimp):
        nw = Newsletter()
        app = MagicMock()
        nw.init_app(app)

        assert nw.is_initialized() is True
Пример #3
0
    def test_ask_user_to_subscribe_returns_false_if_newsletter_prompted(self):
        nw = Newsletter()
        app = MagicMock()
        nw.init_app(app)
        user = UserFactory.build(newsletter_prompted=True)

        assert nw.ask_user_to_subscribe(user) is False
Пример #4
0
 def test_is_user_subscribed_exception(self, mp):
     """Test is_user_subscribed exception works."""
     with patch.dict(self.flask_app.config, {"MAILCHIMP_API_KEY": "k-3", "MAILCHIMP_LIST_ID": 1}):
         email = "*****@*****.**"
         nw = Newsletter()
         nw.init_app(self.flask_app)
         nw.client.lists.member_info.side_effect = Error
         assert_raises(Error, nw.is_user_subscribed, email)
Пример #5
0
 def test_is_user_subscribed_false(self, mailchimp):
     """Test is_user_subscribed returns False."""
     with patch.dict(self.flask_app.config, {"MAILCHIMP_API_KEY": "k-3", "MAILCHIMP_LIST_ID": 1}):
         email = "*****@*****.**"
         nw = Newsletter()
         nw.init_app(self.flask_app)
         res = nw.is_user_subscribed(email)
         nw.client.lists.member_info.assert_called_with(1, [{"email": email}])
         assert res is False
Пример #6
0
 def test_is_user_subscribed_exception(self, mp):
     """Test is_user_subscribed exception works."""
     with patch.dict(self.flask_app.config, {'MAILCHIMP_API_KEY': 'k-3',
                                             'MAILCHIMP_LIST_ID': 1}):
         email = '*****@*****.**'
         nw = Newsletter()
         nw.init_app(self.flask_app)
         nw.client.lists.member_info.side_effect = Error
         assert_raises(Error, nw.is_user_subscribed, email)
Пример #7
0
 def test_init_app(self, mailchimp):
     """Test Newsletter init_app method works."""
     with patch.dict(self.flask_app.config, {"MAILCHIMP_API_KEY": "k-3", "MAILCHIMP_LIST_ID": 1}):
         nw = Newsletter()
         assert nw.app is None
         nw.init_app(self.flask_app)
         assert nw.app == self.flask_app
         assert nw.client, nw.client
         assert nw.list_id == 1
Пример #8
0
    def test_ask_user_to_subscribe_returns_true_if_user_not_subscribed(self, mailchimp):
        user = UserFactory.build(newsletter_prompted=False)
        app = MagicMock()
        fake_client = MagicMock()
        fake_client.lists.member_info.return_value = {"success_count": 0, "data": [{"email": "*****@*****.**"}]}
        mailchimp.Mailchimp.return_value = fake_client
        nw = Newsletter()
        nw.init_app(app)

        assert nw.ask_user_to_subscribe(user) is True
 def test_ask_user_to_subscribe_returns_false_if_user_subscribed(self,
                                                                 req_mock):
     user = UserFactory.build(newsletter_prompted=False)
     app = MagicMock()
     nw = Newsletter()
     nw.init_app(app)
     req_mock.side_effect = [FakeResponse(text=json.dumps(dict(foo='bar')),
                                          json=lambda: dict(status=200),
                                          status_code=200)]
     assert nw.ask_user_to_subscribe(user) is False
Пример #10
0
 def test_init_app(self, mailchimp):
     """Test Newsletter init_app method works."""
     with patch.dict(self.flask_app.config, {'MAILCHIMP_API_KEY': 'k-3',
                                             'MAILCHIMP_LIST_ID': 1}):
         nw = Newsletter()
         assert nw.app is None
         nw.init_app(self.flask_app)
         assert nw.app == self.flask_app
         assert nw.client, nw.client
         assert nw.list_id == 1
Пример #11
0
 def test_subscribe_user_exception(self, mp):
     """Test subscribe_user exception 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.client.lists.subscribe.side_effect = Error
         tmp = {"data": [{"email": user.email_addr}], "success_count": 1}
         nw.client.lists.member_info.return_value = tmp
         assert_raises(Error, nw.subscribe_user, user)
 def test_init_app(self):
     """Test Newsletter init_app method works."""
     with patch.dict(self.flask_app.config, {'MAILCHIMP_API_KEY': 'k-3',
                                             'MAILCHIMP_LIST_ID': 1}):
         nw = Newsletter()
         assert nw.app is None
         nw.init_app(self.flask_app)
         assert nw.app == self.flask_app
         assert nw.list_id == 1
         assert nw.root == 'https://3.api.mailchimp.com/3.0'
Пример #13
0
 def test_is_user_subscribed_false(self, mailchimp):
     """Test is_user_subscribed returns False."""
     with patch.dict(self.flask_app.config, {'MAILCHIMP_API_KEY': 'k-3',
                                             'MAILCHIMP_LIST_ID': 1}):
         email = '*****@*****.**'
         nw = Newsletter()
         nw.init_app(self.flask_app)
         res = nw.is_user_subscribed(email)
         nw.client.lists.member_info.assert_called_with(1,
                                                        [{'email': email}])
         assert res is False
Пример #14
0
    def test_ask_user_to_subscribe_returns_true_if_user_not_subscribed(self, mailchimp):
        user = UserFactory.build(newsletter_prompted=False)
        app = MagicMock()
        fake_client = MagicMock()
        fake_client.lists.member_info.return_value = {
            'success_count': 0, 'data': [{'email':'*****@*****.**'}]}
        mailchimp.Mailchimp.return_value = fake_client
        nw = Newsletter()
        nw.init_app(app)

        assert nw.ask_user_to_subscribe(user) is True
Пример #15
0
    def test_ask_user_to_subscribe_returns_false_if_user_subscribed(self, mailchimp):
        user = UserFactory.build(newsletter_prompted=False)
        app = MagicMock()
        fake_client = MagicMock()
        fake_client.lists.member_info.return_value = {
            'success_count': 1, 'data': [{'email':user.email_addr}]}
        mailchimp.Mailchimp.return_value = fake_client
        nw = Newsletter()
        nw.init_app(app)

        assert nw.ask_user_to_subscribe(user) is False
Пример #16
0
 def test_is_user_subscribed_true(self, mailchimp):
     """Test is_user_subscribed returns True."""
     with patch.dict(self.flask_app.config, {"MAILCHIMP_API_KEY": "k-3", "MAILCHIMP_LIST_ID": 1}):
         email = "*****@*****.**"
         nw = Newsletter()
         nw.init_app(self.flask_app)
         tmp = {"data": [{"email": email}], "success_count": 1}
         nw.client.lists.member_info.return_value = tmp
         res = nw.is_user_subscribed(email)
         nw.client.lists.member_info.assert_called_with(1, [{"email": email}])
         assert res is True
 def test_is_user_subscribed_true(self, req_mock):
     """Test is_user_subscribed returns True."""
     with patch.dict(self.flask_app.config, {'MAILCHIMP_API_KEY': 'k-3',
                                             'MAILCHIMP_LIST_ID': 1}):
         email = '*****@*****.**'
         nw = Newsletter()
         nw.init_app(self.flask_app)
         req_mock.side_effect = [FakeResponse(text=json.dumps(dict(status='200')),
                                            json=lambda : dict(status=200),
                                            status_code=200)]
         res, err = nw.is_user_subscribed(email)
         assert res is True, (res, err)
Пример #18
0
    def test_subscribe_user(self, mailchimp):
        """Test subscribe user 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)

            email = {"email": user.email_addr}
            merge_vars = {"FNAME": user.fullname}
            nw.client.lists.subscribe.assert_called_with(1, email, merge_vars, update_existing=False)
Пример #19
0
 def test_subscribe_user_exception(self, mp):
     """Test subscribe_user exception 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.client.lists.subscribe.side_effect = Error
         tmp = {'data': [{'email': user.email_addr}],
                'success_count': 1}
         nw.client.lists.member_info.return_value = tmp
         assert_raises(Error, nw.subscribe_user, user)
Пример #20
0
 def test_is_user_subscribed_true(self, mailchimp):
     """Test is_user_subscribed returns True."""
     with patch.dict(self.flask_app.config, {'MAILCHIMP_API_KEY': 'k-3',
                                             'MAILCHIMP_LIST_ID': 1}):
         email = '*****@*****.**'
         nw = Newsletter()
         nw.init_app(self.flask_app)
         tmp = {'data': [{'email': email}],
                'success_count': 1}
         nw.client.lists.member_info.return_value = tmp
         res = nw.is_user_subscribed(email)
         nw.client.lists.member_info.assert_called_with(1,
                                                        [{'email': email}])
         assert res is True
Пример #21
0
 def test_is_user_subscribed_true(self, mailchimp):
     """Test is_user_subscribed returns True."""
     with patch.dict(self.flask_app.config, {'MAILCHIMP_API_KEY': 'k-3',
                                             'MAILCHIMP_LIST_ID': 1}):
         email = '*****@*****.**'
         nw = Newsletter()
         nw.init_app(self.flask_app)
         tmp = {'data': [{'email': email}],
                'success_count': 1}
         nw.client.lists.member_info.return_value = tmp
         res = nw.is_user_subscribed(email)
         nw.client.lists.member_info.assert_called_with(1,
                                                        [{'email': email}])
         assert res is True
Пример #22
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)

            old_email = "*****@*****.**"

            tmp = {"data": [{"email": old_email}], "success_count": 1}
            nw.client.lists.member_info.return_value = tmp

            nw.subscribe_user(user, old_email=old_email)

            email = {"email": old_email}
            merge_vars = {"FNAME": user.fullname, "new-email": user.email_addr}
            nw.client.lists.subscribe.assert_called_with(1, email, merge_vars, update_existing=True)
Пример #23
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',
                        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)
Пример #24
0
    def test_subscribe_user(self, mailchimp):
        """Test subscribe user 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)

            email = {'email': user.email_addr}
            merge_vars = {'FNAME': user.fullname}
            url = "%s/lists/1/members/" % (nw.root)
            data = dict(email_address=user.email_addr,
                        status='pending',
                        merge_fields=dict(FNAME=user.fullname))
            mailchimp.assert_called_with(url, data=json.dumps(data),
                                         headers={'content-type':
                                                  'application/json'},
                                         auth=nw.auth)
Пример #25
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)

            old_email = '*****@*****.**'

            tmp = {'data': [{'email': old_email}],
                   'success_count': 1}
            nw.client.lists.member_info.return_value = tmp

            nw.subscribe_user(user, old_email=old_email)

            email = {'email': old_email}
            merge_vars = {'FNAME': user.fullname,
                          'new-email': user.email_addr}
            nw.client.lists.subscribe.assert_called_with(1, email, merge_vars,
                                                         update_existing=True)
Пример #26
0
    def test_subscribe_user(self, mailchimp):
        """Test subscribe user 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)

            email = {'email': user.email_addr}
            merge_vars = {'FNAME': user.fullname}
            nw.client.lists.subscribe.assert_called_with(1, email, merge_vars,
                                                         update_existing=False)
    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
Пример #28
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)

            old_email = '*****@*****.**'

            tmp = {'data': [{'email': old_email}],
                   'success_count': 1}
            nw.client.lists.member_info.return_value = tmp

            nw.subscribe_user(user, old_email=old_email)

            email = {'email': old_email}
            merge_vars = {'FNAME': user.fullname,
                          'new-email': user.email_addr}
            nw.client.lists.subscribe.assert_called_with(1, email, merge_vars,
                                                         update_existing=True)
Пример #29
0
    def test_subscribe_user(self, mailchimp):
        """Test subscribe user 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)

            url = "%s/lists/1/members/" % (nw.root)
            data = dict(email_address=user.email_addr,
                        status='pending',
                        merge_fields=dict(FNAME=user.fullname))
            mailchimp.assert_called_with(
                url,
                data=json.dumps(data),
                headers={'content-type': 'application/json'},
                auth=nw.auth)
Пример #30
0
    def test_ask_user_to_subscribe_returns_false_if_not_initialized(self):
        nw = Newsletter()
        user = UserFactory.build()

        assert nw.ask_user_to_subscribe(user) is False
Пример #31
0
    def test_is_initialized_returns_false_before_calling_init_app(self):
        nw = Newsletter()
        app = MagicMock()

        assert nw.is_initialized() is False
Пример #32
0
    def test_is_initialized_returns_false_before_calling_init_app(self, mailchimp):
        nw = Newsletter()
        app = MagicMock()

        assert nw.is_initialized() is False
Пример #33
0
    def test_is_initialized_returns_true_after_calling_init_app(self, mailchimp):
        nw = Newsletter()
        app = MagicMock()
        nw.init_app(app)

        assert nw.is_initialized() is True
Пример #34
0
    def test_ask_user_to_subscribe_returns_false_if_not_initialized(self):
        nw = Newsletter()
        user = UserFactory.build()

        assert nw.ask_user_to_subscribe(user) is False