from django.test import TestCase, Client
from django.contrib.auth.models import User
from billjobs.models import Bill, Service
from billjobs.settings import BILLJOBS_BILL_ISSUER

class BillingTestCase(TestCase):
    ''' Test billing creation and modification '''
    fixtures = ['dev_data.json']

    def setUp(self):
        self.client = Client()
        self.client.login(username='bill', password='jobs')

    def tearDown(self):
        self.client.logout()

    def test_create_bill_with_one_line(self):
        ''' Test when user is created a bill with a single service '''
        #response = self.client.get('/admin/billjobs/bill/add/', follow_redirect=True)
        #self.assertEqual(response.status_code, 200)
        self.assertTrue(True)

    def test_create_bill(self):
        user = User.objects.get(username='bill')
        bill = Bill(user=user)
        bill.save()
        self.assertEqual(bill.user.username, 'bill')
        self.assertEqual(bill.issuer_address, BILLJOBS_BILL_ISSUER)
        self.assertEqual(
                bill.billing_address, user.userprofile.billing_address)


from django.test import TestCase, Client
from django.contrib.auth.models import User
from billjobs.models import Bill, Service
from billjobs.settings import BILLJOBS_BILL_ISSUER

class BillingTestCase(TestCase):
    ''' Test billing creation and modification '''
    fixtures = ['dev_data.json']

    def setUp(self):
        self.user = User.objects.get(username='bill')

    def tearDown(self):
        pass

    def test_create_bill_with_one_line(self):
        ''' Test when user is created a bill with a single service '''
        #response = self.client.get('/admin/billjobs/bill/add/', follow_redirect=True)
        #self.assertEqual(response.status_code, 200)
        self.assertTrue(True)

    def test_create_bill(self):
        bill = Bill(user=self.user)
        bill.save()
        self.assertEqual(bill.user.username, self.user.username)
        self.assertEqual(bill.issuer_address, BILLJOBS_BILL_ISSUER)
        self.assertEqual(
                bill.billing_address, self.user.userprofile.billing_address)

    def test_user_change_billing_address(self):
        ''' Test when user is changing is billing address
            Previous bill is with old address
            New bill is with new address
        '''
        pass

Refactor test to use user
Refactor test to use user
