Upgrade to Pro — share decks privately, control downloads, hide ads and more …

tdd with django

Avatar for chrisramon chrisramon
November 27, 2012

tdd with django

Avatar for chrisramon

chrisramon

November 27, 2012

Other Decks in Programming

Transcript

  1. TestCase  -­‐  Structure   from  django.test  import  TestCase    

    class  BuyersTestCase(TestCase):          def  setUp(self):                  pass          def  tearDown(self):                  pass   def  test_buyer_detail(self):                  pass  
  2. class  ManufacturerModelsTestCase(TestCase):   def  setUp(self):          

           manufacturer_data  =  {                          'name'  :  'Manufacturer  Test',                  }                  self.manufacturer  =  Manufacturer.objects.create(**manufacturer_data)     def  test_manufacturer_is_unique_in_air_transport(self):                  data  =  {                          'manufacturer'  :  self.manufacturer                  }   with  self.assertRaises(IntegrityError):                    ManufacturerAirTransport.objects.create(**data)  
  3. Running  TestCase’s   Path:   some_app/tests/__init__.py     Add:  

    from  apps.rp.tests.buyer.registraTon  import   BuyerRegistraTonTestCase     >  ./manage.py  test  rp.  BuyerRegistraTonTestCase  
  4. Built  In  –  Test  Clients   •  Client:   • 

    Dummy  web  browser,  simulate  GET  –  POST   request’s     from  django.test.client  import  Client   class  AgentRegistraConTestCase(TestCase):          def  setUp(self):   self.client  =  Client()  
  5. Detail  View   class  BuyerDetailView(LoginRequiredMixin,   DetailView):      

       model  =  Buyer          template_name  =  'administrator/buyer/show.html'          context_object_name  =  'buyer'            def  get_buyer(self):                  buyer_pk  =  self.kwargs.get('pk',  None)                  return  Buyer.objects.get(pk=buyer_pk)    
  6. Test  -­‐  Detail  View    def  test_buyer_detail_view(self):      

               user  =  User()                  user.email  =  '[email protected]'                  user.set_password('my_very_secure_pwd')                  user.save()                    self.buyer  =  Buyer.objects.create()                    self.client.login(username=user.email,  password='my_very_secure_pwd')                  response  =  self.client.get(                          reverse(  'admin_buyer_show',  kwargs={'pk’  :  self.buyer.id})                  )                    self.assertEqual(response.status_code,  200)                  self.assertTrue(response.context_data.has_key('buyer'))