예제 #1
0
    def test_index_handles_logged_in_user(self):
        #create a session that appears to have a logged in user
        self.request.session = {"user": "******"}

        #setup dummy user
        #we need to save user so user -> badges relationship is created
        u = User(email="*****@*****.**")
        u.save()

        with mock.patch('main.views.User') as user_mock:

            #tell the mock what to do when called
            config = {'get_by_id.return_value': u}
            user_mock.configure_mock(**config)

            #run the test
            resp = index(self.request)

            #ensure we return the state of the session back to normal
            self.request.session = {}
            u.delete()

            #we are now sending a lot of state for logged in users, rather than
            #recreating that all here, let's just check for some text
            #that should only be present when we are logged in.
            self.assertContains(resp, "Report back to base")
예제 #2
0
    def test_index_handles_logged_in_user(self):
        #create the user to lookup
        from payments.models import User
        user = User(
            name='jj',
            email='*****@*****.**',
        )
        #create a session that appears to have a logged in user
        self.request.session = {'user': '******'}

        with mock.patch('main.views.User') as user_mock:

            #Tell the mock what to do when called
            config = {'get_by_id.return_value': mock.Mock()}
            user_mock.configure_mock(**config)

            #request the index page
            resp = index(self.request)

            #return session to its prev state
            self.request.session = {}

            #verify it returns the page for the logged in user
            expectedHtml = render_to_response('user.html',
                                              {'user': user_mock.get_by_id(1)})
            self.assertEquals(resp.content, expectedHtml)
예제 #3
0
def register(request):
    user = None
    if request.method == 'POST':
        form = UserForm(request.POST)
        print("@@@@@@@@@@@@@@@@@@@@@@@@@@@")
        print(request)
        print("@@@@@@@@@@@@@@@@@@@@@@@@@@@")
        print(form)
        if form.is_valid():
            #update based on your billing method (subscription vs one time)
            customer = stripe.Customer.create(
                email=form.cleaned_data['email'],
                description=form.cleaned_data['name'],
                card=form.cleaned_data['stripe_token'],
                plan="gold",

            )
            # customer = stripe.Charge.create(
            #     description = form.cleaned_data['email'],
            #     card = form.cleaned_data['stripe_token'],
            #     amount="5000",
            #     currency="usd"
            # )

            user = User(
                name=form.cleaned_data['name'],
                email=form.cleaned_data['email'],
                last_4_digits=form.cleaned_data['last_4_digits'],
                stripe_id=customer.id,
            )

            #ensure encrypted password
            user.set_password(form.cleaned_data['password'])

            try:
                user.save()
            except IntegrityError:
                form.addError(user.email + ' is already a member')
            else:
                request.session['user'] = user.pk
                return redirect('/')

    else:
        form = UserForm()


    return render(
        request,
        'register.html',
        {
            'form': form,
            'months': range(1, 12),
            'publishable': settings.STRIPE_PUBLISHABLE,
            'soon': soon(),
            'user': user,
            'years': range(2011, 2036),
        },
    )
예제 #4
0
    def setUpClass(cls):
        cls.u = User(name="test", email="*****@*****.**")
        cls.u.save()

        cls.new_status = StatusReport(user=cls.u, status="hello world")
        cls.new_status.save()

        cls.expected_dict = OrderedDict([
            ('id', cls.new_status.id),
            ('user', cls.u.email),
            ('when', cls.new_status.when),
            ('status', 'hello world'),
        ])
예제 #5
0
 def test_index_handles_logged_in_user(self):
     user = User(
         name='jj',
         email='*****@*****.**',
     )
     user.save()
     self.request.session = {'user': '******'}
     response = index(self.request)
     self.request.session = {}
     expected_html = render(self.request, 'user.html', {
         'user': user
     }).content
     self.assertEquals(response.content, expected_html)
예제 #6
0
def register(request):
    user = None
    if request.method == 'POST':
        form = UserForm(request.POST)
        if form.is_valid():
            
            # Update based on billing method
            customer = stripe.Customer.create(
                            email=form.cleaned_data['email'],
                            description=form.cleaned_data['name'],
                            card=form.cleaned_data['stripe_token'],
                            plan="gold",
                        )
#            customer = stripe.Charge.create(
#                            description=form.cleaned_data['email'],
#                            card=form.cleaned_data['stripe_token']
#                            amount="5000",
#                            currency="usd",
#                        )
            user = User(
                        name=form.cleaned_data['name'],
                        email=form.cleaned_data['email'],
                        last_4_digits=form.cleaned_data['last_4_digits'],
                        stripe_id=customer.id,
                        password=form.cleaned_data['password'],
                    )
            
#            user.set_password(form.cleaned_data['password'])
            
            try:
                user.save()
            except IntegrityError:
                form.addError(user.email + 'is already a member')
            else:
                request.session['user'] = user.pk
                return HttpResponseRedirect('/')
    else:
        form = UserForm()
    
    return render_to_response(
                'register.html',
                {
                    'form': form,
                    'months': range(1, 12),
                    'publishable': settings.STRIPE_PUBLISHABLE,
                    'soon': soon(),
                    'user': user,
                    'years': range(2014, 2039),
                },
                context_instance=RequestContext(request),
            )
예제 #7
0
    def test_index_handles_logged_in_user(self):
	# create the user needed for user lookup from index page
	from payments.models import User
	user = User(
		name = 'jj',
		email='*****@*****.**',
)
	user.save()
	
	#create a Mock request object, so we can manipulate the session
	request_factory  = RequestFactory()
	request = request_factory.get('/')
	request.session= {'user': '******'}
	rep = index(request)
	# verify the response returns the page for the logged in user
	self.assertEqual(rep.content,render_to_response('user.html', {'user': user}).content)
예제 #8
0
    def setUpTestData(cls):
        cls.u = User(name="test", email="*****@*****.**")
        cls.u.save()

        cls.new_status = StatusReport(user=cls.u, status="hello world")
        cls.new_status.save()

        when = cls.new_status.when.isoformat()
        if when.endswith('+00:00'):
            when = when[:-6] + 'Z'

        cls.expected_dict = OrderedDict([
            ('id', cls.new_status.id),
            ('user', cls.u.email),
            ('when', when),
            ('status', 'hello world'),
        ])
예제 #9
0
    def test_index_handles_logged_in_user(self):
        # Create a session that appears to have a logged in user
        self.request.session = {"user": "******"}
        u = User(email="*****@*****.**")
        u.save()

        with mock.patch('main.views.User') as user_mock:

            # Tell the mock what to do when called
            config = {'get_by_id.return_value': u}
            user_mock.configure_mock(**config)

            # Run the test
            resp = index(self.request)

            # Ensure we return the state of the session back to normal
            self.request.session = {}
            u.delete()

            self.assertContains(resp, "Report back to base")
예제 #10
0
 def setUpTestData(cls):
     cls.test_user = User(email="*****@*****.**", name='test user')
     cls.test_user.save()
예제 #11
0
 def setUpTestData(cls):
     cls.test_user = User(id=2222,
                          email="*****@*****.**",
                          last_login=datetime.now())
     cls.test_user.save()
예제 #12
0
 def setUpClass(cls):
     cls.u = User(name="test", email="*****@*****.**")
     cls.u.save()
예제 #13
0
 def setUpClass(cls):
     cls.factory = APIRequestFactory()
     cls.test_user = User(email="*****@*****.**")
     cls.test_user.save()
예제 #14
0
 def setUpTestData(cls):
     cls.test_user = User(id=2222, email="*****@*****.**")
     cls.test_user.save()
예제 #15
0
 def setUpClass(cls):
     super().setUpClass()
     cls.test_user = User(email="*****@*****.**", name='test user')
     cls.test_user.save()
예제 #16
0
 def setUpTestData(cls):
     cls.test_user = User(name='test user', email='*****@*****.**')
     cls.test_user.save()
예제 #17
0
 def setUpClass(cls):
     cls.factory = APIRequestFactory()
     cls.test_user = User(id=2222, email="*****@*****.**")