Skip to content

Commit

Permalink
Merge pull request #370 from brickbox-io/bb_accounts_unit_tests
Browse files Browse the repository at this point in the history
Bb accounts unit tests
  • Loading branch information
justinmerrell authored May 9, 2022
2 parents 4007124 + 1bd0eab commit 1e0bece
Show file tree
Hide file tree
Showing 8 changed files with 159 additions and 31 deletions.
1 change: 1 addition & 0 deletions bb_accounts/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
''' Allows access to the tests in the bb_accounts/tests directory. '''
48 changes: 48 additions & 0 deletions bb_accounts/tests/test_urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
''' bb_accounts - test_urls.py '''

from django.test import TestCase
from django.urls import reverse, resolve

class TestUrls(TestCase):
'''
Tests performed for each URL:
- Internal reverse lookup provides the correct URL
- URL points to the same internal refrence
- The correct template is served for the URL (if applicable)
'''

def test_reverse_url(self):
'''
Reverse lookup tests for each URL
'''
# Login URL
url_login = reverse('bb_accounts:login')
self.assertEqual(url_login, '/login/')

# Register URL
url_login = reverse('bb_accounts:register')
self.assertEqual(url_login, '/register/')

# Token URL
url_login = reverse('bb_accounts:tokensignin')
self.assertEqual(url_login, '/tokensignin/')

def test_resolve_urls(self):
'''
Test that the correct view is used for the URL request.
'''
# Register URL
resolve_register = resolve('/register/')
self.assertEqual(resolve_register.func.__name__, 'account_registration')
self.assertEqual(resolve_register.args, ())
self.assertEqual(resolve_register.kwargs, {})
self.assertEqual(resolve_register.url_name, 'register')
self.assertEqual(resolve_register.view_name, 'bb_accounts:register')

# Token URL
resolve_tokensignin = resolve('/tokensignin/')
self.assertEqual(resolve_tokensignin.func.__name__, 'token_signin')
self.assertEqual(resolve_tokensignin.args, ())
self.assertEqual(resolve_tokensignin.kwargs, {})
self.assertEqual(resolve_tokensignin.url_name, 'tokensignin')
self.assertEqual(resolve_tokensignin.view_name, 'bb_accounts:tokensignin')
7 changes: 4 additions & 3 deletions bb_accounts/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@
app_name = 'bb_accounts'

urlpatterns = [
path('', include('django.contrib.auth.urls')),
path('register/', views.account_registration, name='register'),
path('', include('django.contrib.auth.urls')), # login/logout

path('tokensignin/', views.token_signin, name='tokensignin'),
path('register/', views.account_registration, name='register'), # New Account (Registration)

path('tokensignin/', views.token_signin, name='tokensignin'), # Token Signin (oauth2)
]
3 changes: 3 additions & 0 deletions bb_accounts/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,9 @@ def token_signin(request):
return HttpResponseServerError('No email returned.')

try:
if User.objects.filter(username=idinfo['email']).exists():
raise ValueError('Email already in use.')

new_user = User.objects.create_user(
username = idinfo['email'],
first_name = idinfo['given_name'],
Expand Down
1 change: 1 addition & 0 deletions bb_billing/tests/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
''' Allows access to the tests in the bb_billing/tests directory. '''
74 changes: 74 additions & 0 deletions bb_billing/tests/test_urls.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
''' bb_billing - test_urls.py '''

from django.test import TestCase
from django.urls import reverse, resolve

class TestUrls(TestCase):
'''
Tests performed for each URL:
- Internal reverse lookup provides the correct URL
- URL points to the same internal refrence
- The correct template is served for the URL (if applicable)
'''

def test_reverse_urls(self):
'''
Reverse lookup tests for each URL
'''
# ------------------------- Stripe Webhook Endpoints ------------------------- #
# Stripe Account
url_stripe_account = reverse('bb_billing:stripe_account_event')
self.assertEqual(url_stripe_account, '/stripe/account')

# Stripe Payment Method
url_stripe_payment_method = reverse('bb_billing:stripe_payment_method_event')
self.assertEqual(url_stripe_payment_method, '/stripe/payment_method')

# Stripe Invoice
url_stripe_invoice = reverse('bb_billing:stripe_invoice_event')
self.assertEqual(url_stripe_invoice, '/stripe/invoice')

# ------------------------- Billing Function Endpoint ------------------------ #
# Manual Payment
url_manual_payment = reverse('bb_billing:manual_payment')
self.assertEqual(url_manual_payment, '/bb_billing/manual_payment')


def test_resolve_urls(self):
'''
Test that the correct view is used for the URL request.
'''
# ------------------------- Stripe Webhook Endpoints ------------------------- #
# Stripe Account
resolve_stripe_account = resolve('/stripe/account')
self.assertEqual(resolve_stripe_account.func.__name__, 'account_event')
self.assertEqual(resolve_stripe_account.args, ())
self.assertEqual(resolve_stripe_account.kwargs, {})
self.assertEqual(resolve_stripe_account.url_name, 'stripe_account_event')
self.assertEqual(resolve_stripe_account.view_name, 'bb_billing:stripe_account_event')

# Stripe Payment Method
resolve_stripe_payment_method = resolve('/stripe/payment_method')
self.assertEqual(resolve_stripe_payment_method.func.__name__, 'payment_method_event')
self.assertEqual(resolve_stripe_payment_method.args, ())
self.assertEqual(resolve_stripe_payment_method.kwargs, {})
self.assertEqual(resolve_stripe_payment_method.url_name, 'stripe_payment_method_event')
self.assertEqual(resolve_stripe_payment_method.view_name,
'bb_billing:stripe_payment_method_event')

#Stripe Invoice
resolve_stripe_invoice = resolve('/stripe/invoice')
self.assertEqual(resolve_stripe_invoice.func.__name__, 'invoice_event')
self.assertEqual(resolve_stripe_invoice.args, ())
self.assertEqual(resolve_stripe_invoice.kwargs, {})
self.assertEqual(resolve_stripe_invoice.url_name, 'stripe_invoice_event')
self.assertEqual(resolve_stripe_invoice.view_name, 'bb_billing:stripe_invoice_event')

# ------------------------- Billing Function Endpoint ------------------------ #
# Manual Payment
resolve_manual_payment = resolve('/bb_billing/manual_payment')
self.assertEqual(resolve_manual_payment.func.__name__, 'manual_payment')
self.assertEqual(resolve_manual_payment.args, ())
self.assertEqual(resolve_manual_payment.kwargs, {})
self.assertEqual(resolve_manual_payment.url_name, 'manual_payment')
self.assertEqual(resolve_manual_payment.view_name, 'bb_billing:manual_payment')
6 changes: 3 additions & 3 deletions bb_billing/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
urlpatterns = [

# ------------------------- Stripe Webhook Endpoints ------------------------- #
path('stripe/account', views.account_event, name='webhook_stripe_account'),
path('stripe/account', views.account_event, name='stripe_account_event'),

path('stripe/payment_method', views.payment_method_event, name='webhook_stripe_pay_method'),
path('stripe/payment_method', views.payment_method_event, name='stripe_payment_method_event'),

path('stripe/invoice', views.invoice_event, name='webhook_invoice_event'),
path('stripe/invoice', views.invoice_event, name='stripe_invoice_event'),


# ------------------------- Billing Function Endpoint ------------------------ #
Expand Down
50 changes: 25 additions & 25 deletions bb_public/tests/test_urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,38 +31,38 @@ def test_reverse_urls(self):
url_forms_email_list = reverse('bb_public:email_list_form')
self.assertEqual(url_forms_email_list, '/forms/email_list')

def test_resolver_urls(self):
def test_resolve_urls(self):
'''
Test that the correct view is used for the URL request.
'''
# Landing Page
resolver_landing_page = resolve('/')
self.assertEqual(resolver_landing_page.func.__name__, 'landing_page')
self.assertEqual(resolver_landing_page.args, ())
self.assertEqual(resolver_landing_page.kwargs, {})
self.assertEqual(resolver_landing_page.url_name, 'landing_page')
self.assertEqual(resolver_landing_page.view_name, 'bb_public:landing_page')
resolve_landing_page = resolve('/')
self.assertEqual(resolve_landing_page.func.__name__, 'landing_page')
self.assertEqual(resolve_landing_page.args, ())
self.assertEqual(resolve_landing_page.kwargs, {})
self.assertEqual(resolve_landing_page.url_name, 'landing_page')
self.assertEqual(resolve_landing_page.view_name, 'bb_public:landing_page')

# Legal Page
resolver_legal_page = resolve('/legal')
self.assertEqual(resolver_legal_page.func.__name__, 'legal_page')
self.assertEqual(resolver_legal_page.args, ())
self.assertEqual(resolver_legal_page.kwargs, {})
self.assertEqual(resolver_legal_page.url_name, 'legal_page')
self.assertEqual(resolver_legal_page.view_name, 'bb_public:legal_page')
resolve_legal_page = resolve('/legal')
self.assertEqual(resolve_legal_page.func.__name__, 'legal_page')
self.assertEqual(resolve_legal_page.args, ())
self.assertEqual(resolve_legal_page.kwargs, {})
self.assertEqual(resolve_legal_page.url_name, 'legal_page')
self.assertEqual(resolve_legal_page.view_name, 'bb_public:legal_page')

# Offline Page
resolver_offline_page = resolve('/offline/')
self.assertEqual(resolver_offline_page.func.__name__, 'pwa_offline')
self.assertEqual(resolver_offline_page.args, ())
self.assertEqual(resolver_offline_page.kwargs, {})
self.assertEqual(resolver_offline_page.url_name, 'pwa_offline')
self.assertEqual(resolver_offline_page.view_name, 'bb_public:pwa_offline')
resolve_offline_page = resolve('/offline/')
self.assertEqual(resolve_offline_page.func.__name__, 'pwa_offline')
self.assertEqual(resolve_offline_page.args, ())
self.assertEqual(resolve_offline_page.kwargs, {})
self.assertEqual(resolve_offline_page.url_name, 'pwa_offline')
self.assertEqual(resolve_offline_page.view_name, 'bb_public:pwa_offline')

# Email Form
resolver_email_form = resolve('/forms/email_list')
self.assertEqual(resolver_email_form.func.__name__, 'email_list_form')
self.assertEqual(resolver_email_form.args, ())
self.assertEqual(resolver_email_form.kwargs, {})
self.assertEqual(resolver_email_form.url_name, 'email_list_form')
self.assertEqual(resolver_email_form.view_name, 'bb_public:email_list_form')
resolve_email_form = resolve('/forms/email_list')
self.assertEqual(resolve_email_form.func.__name__, 'email_list_form')
self.assertEqual(resolve_email_form.args, ())
self.assertEqual(resolve_email_form.kwargs, {})
self.assertEqual(resolve_email_form.url_name, 'email_list_form')
self.assertEqual(resolve_email_form.view_name, 'bb_public:email_list_form')

0 comments on commit 1e0bece

Please sign in to comment.