Warning: Can't synchronize with repository "(default)" (Unsupported version control system "svn": No module named svn). Look in the Trac log for more information.

Ticket #1762: merge_rpt.txt

File merge_rpt.txt, 3.5 KB (added by kskuhlman, 4 years ago)

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

Line 
1This 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
8setup.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
15view/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
23testutil.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
58turbogears/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