def test_user_contract_de_username(self): """ user contract generation -- pdf generation """ from c3sar.views.user import user_contract_de_username instance = self._makeUser() self.dbsession.add(instance) self.dbsession.flush() request = testing.DummyRequest() # rolled my own skiptest :-) import subprocess from subprocess import CalledProcessError try: #print "trying ......................." res = subprocess.check_call(["which", "pdftk"]) #print "tried ........................" #print "result of this: " + str(res) if res == 0: print " ======== going ahead with the tests !!" self.config = testing.setUp(request=request) _registerRoutes(self.config) request.matchdict['username'] = instance.username result = user_contract_de_username(request) # print "generate contract de username" # pp.pprint(result) # print len(result.body) # test: result content_type == pdf self.assertEquals(result.content_type, 'application/pdf', "result has wrong content type") # test: result pdf is > 80KB self.assertTrue(len(result.body) > 80000, "resulting pdf smaller as expected") # test: result pdf is < 100KB self.assertTrue(len(result.body) < 100000, "resulting pdf bigger as expected") except CalledProcessError, cpe: print "SKIPPING test_user_contract_de_username. " print "You need to install pdftk !!!"
def test_user_contract_de_username_fail(self): """ user contract generation -- failure case """ from c3sar.views.user import user_contract_de_username instance = self._makeUser() self.dbsession.add(instance) self.dbsession.flush() request = testing.DummyRequest() self.config = testing.setUp(request=request) _registerRoutes(self.config) request.matchdict['username'] = u'' result = user_contract_de_username(request) #print "generate contract de username" #pp.pprint(result) #print len(result.body) # test: result content_type != pdf self.assertNotEquals(result.content_type, 'application/pdf', "result has wrong content type") # test: is a redirect self.assertTrue(isinstance(result, HTTPFound), 'no redirect seen')