Ticket #1762: merge_rpt.txt

File merge_rpt.txt, 3.5 kB (added by kskuhlman, 4 months ago)

A report of which changes were kept from the two approaches.

Line 
1 This is a report of which changes I took from Luke's patch & which from mine as I worked towards blending them into one.  The goals of this rewrite are to:
2
3  * Have a clean API with "one right way to do it" where possible.
4  * Provide clear benifit to the users, so they're encouraged to move forward.
5  * Be mindful of the fact that we want these tests to easily ported to TG2.
6
7
8 setup.py:
9  * Install Requirements
10    * Luke: added WebTest to install_requires
11    * Ken added it to testtools & tgtesttools
12    * Merged: Kept Ken's b/c testing's not part of the core.
13
14
15 view/base.py:
16  * When testing, add controller's result to the paste.testing. (WebTest
17    captures this & attaches it to the response.
18    * Luke: added it under 'namespace' key
19    * Ken: added it under the 'raw' key
20    * Merged: Kept Ken's because raw is more meaningful to users than namespace.
21
22
23 testutil.py:
24  * Add support for WebTest
25    * Luke:
26      * created TGWebTest, a subclass of unittest.TestCase. No mechanism for
27        just getting the app (for those that think unittest has too much
28        boilerplate).
29      * created DBWebTest, which sets up both WebTest & the database.
30
31    * Ken:
32      * Made the tests more CP3 friendly.
33      * Added mount & unmount functions. Deprecated reset_cp in favor of unmount.
34      * Added start_server as a replacement for start_cp.
35      * Added "go" function, a shortcut for creating a testapp & doing a get.
36      * Converted BrowsingSession to use WebTest.
37  
38    * Merged:
39      * Added make_wsgiapp, which returns a wsgi application from cherrypy
40      * Added make_app, which returns a WebTest.TestApp instance
41        from cherrypy
42      * Kept Luke's TGWebTest, but made it use these base functions.
43      * Left off DBWebTest for now, until I understand how it's used.
44
45      * Kept Ken's attempt at making things CP3 friendly.  It's not a
46        current hot goal, but the number of lines are minimal & the
47        tests have been a major sticking point.
48      * Kept Ken's mount & unmount functions, but made mount simpler &
49        fixed argument names.
50      * Kept Ken's start_server, but dropped the ability to mount an app --
51        tg2 won't have the same concept of starting a server, so this is the
52        wrong thing to overemphasize in tg1.1.
53      * Moved Ken's automatic start_server logic from "go" to "mount".
54      * Dropped Ken's "go" function.  People should use either TGWebTest or
55        make_app()
56      * Kept Ken's changes to BrowsingSession.
57
58 turbogears/tests/*
59  * Modified to work with testutil as above.
60  * Made better use of setup_module & teardown_module so that app can be mounted
61    and server started a reasonable number of times.  Some might complain that
62    test isolation is reduced by this, but that's not a strong point - you don't
63    stop your server after every request in production do you?  Plus, the tests
64    scream with this more practical (and more practiced) approach.
65  * Used Ken's patches as a base (plus changes for the revised testutil) for test_catwalk, test_errorhandling, test_expose, test_view, test_testutil, test_sqlalchemy. They were more consistent with the style of the modules.
66  * Used Luke's patches for test_paginate, test_controllers
67    * In test_controllers, added some of Ken's stuff for handling return values
68      from controllers instead of attaching them to 'self'.
69  * Used a hybrid for test_form_controllers, test_identity
70
71
72  
73  * Just in case anyone's counting, test_controllers & test_paginate are the biggest test modules.  52 tests in the former, 34 in the later, out of a total of 185 tests in turbogears/tests (about half).
74