I do have customized web2py.test while integrating some of welcome_enhanced
stuff like using splinter api for conducting testing + create a test
launcher to save some boiler plate initialization... I just don't have time
to exectract it form my own app and publish it... It rely on pytest... It
gear around system testing more than unit testing though...

On Wed, Mar 7, 2018 at 1:12 PM, Yoel Benítez Fonseca <ybenit...@gmail.com>
wrote:

> idk if that is the right way... i'm using this approach in on of my
> projects and at the moment the only problem i have is with the memory usage
> or the slow access with a file base sqlite database for the tests.
>
>
> On Wed, Mar 7, 2018 at 1:08 PM, António Ramos <ramstei...@gmail.com>
> wrote:
>
>> Next chapter in web2py book
>>
>> Pytest your app the right way
>>
>> 2018-03-07 18:02 GMT+00:00 Yoel Benítez Fonseca <ybenit...@gmail.com>:
>>
>>> H!
>>>
>>> checkout: https://github.com/viniciusban/web2py.test
>>>
>>>
>>>
>>> On Wed, Mar 7, 2018 at 10:10 AM, Kevin Huang <szu...@gmail.com> wrote:
>>>
>>>>
>>>> Hi all,
>>>>
>>>>
>>>> I'm relatively new to web2py, and still trying to find more resources,
>>>> but i've hit a wall, and I'm not quite sure on this issue I'm working with:
>>>>
>>>>
>>>> So working with the "guide" from http://web2py.com/AlterEgo/def
>>>> ault/show/260, I'm trying to create a few unit tests to test some
>>>> RESTFUL api functions. However, while testing multiple test suites, it
>>>> seems that the request information is carrying over somehow despite my
>>>> attempts to make sure that I start with a new request object via setUp each
>>>> time.
>>>>
>>>> The tests will run just fine if they're alone in the suite, but running
>>>> some of them after the other I was running into HTTP 400 errors and during
>>>> debugging I found out that the request data carrying over.
>>>>
>>>> Some "sample" code to illustrate what I was trying to do...
>>>>
>>>> import unittest
>>>> from gluon.globals import Request
>>>>
>>>> # import api code
>>>> execfile("applications/appname/controllers/app_api.py", globals())class
>>>>
>>>>
>>>> # Test Put api
>>>> TestPutAPI(unittest.TestCase):
>>>>
>>>>  def setUp(self):
>>>>    request = Request(env=[])  # new request, env must be set.
>>>>
>>>>  def test_some_function(self):
>>>>    request.vars['var1'] = 1
>>>>    request.vars['var2'] = 2
>>>>    request.env.request_method = 'PUT'
>>>>    response = api() # call api
>>>>
>>>>    self.assertEquals(response['result'], 'success')
>>>>
>>>>   def tearDown(self):
>>>>    db.table.truncate()  # clean up db (nothing request related here)
>>>>
>>>>
>>>> # Test Post api
>>>> TestPostAPI(unittest.TestCase):
>>>>
>>>>  def setUp(self):
>>>>    request = Request(env=[])  # new request
>>>>
>>>>  def test_some_function(self):
>>>>    request.vars['var5'] = "asdf"
>>>>    request.vars['var6'] = 6
>>>>    request.env.request_method = 'POST'
>>>>    response = api() # call api
>>>>
>>>>    self.assertEquals(response['result'], 'success')
>>>>
>>>>  def tearDown(self):
>>>>    db.table.truncate()  # clean up db (nothing request related here)
>>>>
>>>>
>>>> # Run tests
>>>> suite = unittest.TestSuite()
>>>> suite.addTest(unittest.makeSuite(TestPutAPI))
>>>> suite.addTest(unittest.makeSuite(TestPostAPI))
>>>>
>>>> unittest.TextTestRunner(verbosity=2).run(suite)
>>>>
>>>>
>>>> Is my entire approach to unit testing wrong? I know there's a lot a
>>>> mention of doctests being recommended, also that the line request =
>>>> Request() recommended by the original article also being wrong (or simply
>>>> out of date), but I'm also unsure of how the request and api call is being
>>>> processed in this scenario. Earlier I tried doing 2 calls to the same api
>>>> in one test function and found that web2py (and this unittest) simply could
>>>> not overwrite the request function - if that made any sense (it didn't, and
>>>> didn't work).
>>>>
>>>> Anyone have any pointers?
>>>>
>>>> Thank you,
>>>> KH
>>>>
>>>>
>>>> --
>>>> Resources:
>>>> - http://web2py.com
>>>> - http://web2py.com/book (Documentation)
>>>> - http://github.com/web2py/web2py (Source code)
>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "web2py-users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to web2py+unsubscr...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>> --
>>> Resources:
>>> - http://web2py.com
>>> - http://web2py.com/book (Documentation)
>>> - http://github.com/web2py/web2py (Source code)
>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>> --- You received this message because you are subscribed to the Google
>>> Groups "web2py-users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to web2py+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "web2py-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to web2py+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> Resources:
> - http://web2py.com
> - http://web2py.com/book (Documentation)
> - http://github.com/web2py/web2py (Source code)
> - https://code.google.com/p/web2py/issues/list (Report Issues)
> --- You received this message because you are subscribed to the Google
> Groups "web2py-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to web2py+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to