def setUp(self): self.request = mock.Mock() self.request.registry.settings = { 'bimt.clickbank_dev_key': 'secret', 'bimt.clickbank_api_key': 'secret' } self.view = SettingsForm(self.request)
def setUp(self): initTestingDB(groups=True, users=True) self.config = testing.setUp() self.request = testing.DummyRequest( layout_manager=mock.Mock(), user=User.by_id(2), ) self.view = SettingsForm(self.request)
def test_regenerate_api_key_success(self, find_layout): self.config.testing_securitypolicy( userid='*****@*****.**', permissive=True) req = get_current_request() req.user = mock.Mock() settings_view = SettingsForm(req) settings_view.regenerate_api_key_success(None) self.assertEqual( settings_view.request.session['_f_'], [u'API key re-generated.'], )
def test_settings_view_trial_user(self): request = testing.DummyRequest() request.context = mock.Mock() request.user = mock.Mock(trial=True) resp = SettingsForm(request) self.assertEqual(resp.title, 'Settings') self.assertIsNone(resp.schema.get('change_subscription'))
def test_settings_view_save_success_same_email(self, find_layout): self.config.testing_securitypolicy( userid='*****@*****.**', permissive=True) self.request.user.email = '*****@*****.**' self.request.user.fullname = 'John' form_values = { 'account_info': {'email': '*****@*****.**', 'fullname': 'John'}, 'affiliate_settings': {'clickbank_affiliate_id': ''} } settings_view = SettingsForm(self.request) settings_view.save_success(form_values) self.assertEqual(self.request.user.email, '*****@*****.**') self.assertEqual(self.request.user.fullname, 'John') self.request.user.get_property.assert_not_called() self.assertEqual( settings_view.request.session['_f_'], [u'Your changes have been saved.'], )
def test_settings_view_response(self, find_layout): self.request.registry.settings['bimt.referral_url'] = 'test_url' self.config.testing_securitypolicy( userid='*****@*****.**', permissive=True) find_layout.return_value = mock.Mock(spec='current_page') settings_view = SettingsForm(self.request) self.assertEqual(type(settings_view), SettingsForm) resp = settings_view() self.assertEqual('Settings', resp['title'])
def test_upgrade_subscription_success( self, find_layout, _change_clickbank_subscription): _change_clickbank_subscription.return_value = 1 settings_view = SettingsForm(self.request) settings_view.upgrade_subscription_success( {'change_subscription': {'upgrade_subscription': self.group2.id}}) self.assertEqual( settings_view.request.session['_f_'], [u'Your subscription (1) has been upgraded from group1 to group2.'], # noqa ) self.assertTrue(self.request.user.get_property('upgrade_completed')) from pyramid_bimt.models import AuditLogEntry entry = AuditLogEntry.get_all(security=False).first() self.assertEqual( entry.comment, u'Your subscription (1) has been upgraded from group1 to group2.' ) self.assertEqual(entry.user.id, self.request.user.id)
def test_upgrade_subscription_exception( self, find_layout, _change_clickbank_subscription): from pyramid_bimt.clickbank import ClickbankException _change_clickbank_subscription.side_effect = ClickbankException() settings_view = SettingsForm(self.request) settings_view.upgrade_subscription_success( {'change_subscription': {'upgrade_subscription': self.group2.id}}) self.assertEqual( settings_view.request.session['_f_'], [u'Your upgrade has not completed successfully. Support team has been notified and they are looking into the problem.'], # noqa ) self.assertIsNone( self.request.user.get_property('upgrade_completed', None)) from pyramid_bimt.models import AuditLogEntry entry = AuditLogEntry.get_all(security=False).first() self.assertEqual( entry.comment, u'Your upgrade has not completed successfully. Support team has been notified and they are looking into the problem.' # noqa ) self.assertEqual(entry.user.id, self.request.user.id)
class TestSubscription(unittest.TestCase): def setUp(self): initTestingDB(groups=True, users=True) self.config = testing.setUp() self.request = testing.DummyRequest( layout_manager=mock.Mock(), user=User.by_id(2), ) self.view = SettingsForm(self.request) def tearDown(self): Session.remove() testing.tearDown() @mock.patch('pyramid_layout.layout.find_layout') def test_subscribe_to_newsletter_button_missing(self, find_layout): self.request.registry.settings['bimt.referral_url'] = 'test_url' response = self.view() self.assertNotIn('Subscribe to newsletter', response['form']) @mock.patch('pyramid_layout.layout.find_layout') def test_subscribe_to_newsletter_button_present(self, find_layout): self.request.registry.settings['bimt.referral_url'] = 'test_url' self.request.user.unsubscribe() response = self.view() self.assertIn('Subscribe to newsletter', response['form']) @mock.patch('pyramid_layout.layout.find_layout') def test_subscribe_to_newsletter_unsubscribed(self, find_layout): self.request.user.unsubscribe() self.view.subscribe_to_newsletter_success(None) self.assertEqual( self.request.session['_f_'], [u'You have been subscribed to newsletter.'], ) self.assertFalse(self.request.user.unsubscribed)
class TestChangeSubscription(unittest.TestCase): def setUp(self): self.request = mock.Mock() self.request.registry.settings = { 'bimt.clickbank_dev_key': 'secret', 'bimt.clickbank_api_key': 'secret' } self.view = SettingsForm(self.request) def test_success(self, ClickbankAPI): ClickbankAPI.return_value.change_user_subscription.return_value = '111' self.assertEqual( self.view._change_clickbank_subscription(mock.Mock(product_id=1)), '111', ) def test_exception(self, ClickbankAPI): from pyramid_bimt.clickbank import ClickbankException ClickbankAPI.return_value.change_user_subscription.side_effect = ClickbankException() # noqa with self.assertRaises(ClickbankException): self.view._change_clickbank_subscription(mock.Mock(product_id=1)) def test_use_billing_email(self, ClickbankAPI): self.request.registry.settings['bimt.clickbank_dev_key'] = 'dev' self.request.registry.settings['bimt.clickbank_api_key'] = 'key' self.request.user.product_group.product_id = 'foo' self.request.user.email = '*****@*****.**' self.request.user.billing_email = None self.view._change_clickbank_subscription( Group(id=1, name='bar', product_id='baz')) ClickbankAPI.return_value.change_user_subscription.assert_called_with( '*****@*****.**', 'foo', 'baz') self.request.user.email = '*****@*****.**' self.request.user.billing_email = '*****@*****.**' self.view._change_clickbank_subscription( Group(id=1, name='bar', product_id='baz')) ClickbankAPI.return_value.change_user_subscription.assert_called_with( '*****@*****.**', 'foo', 'baz')
def test_view_csrf_token(self): settings_view = SettingsForm(self.request) csrf_token_field = settings_view.schema.get('csrf_token') self.assertIsNotNone(csrf_token_field) self.assertEqual(csrf_token_field.title, 'Csrf Token')