annotate test/README.txt @ 8177:2967f37e73e4

refactor: issue2551289. invalid REST Accept header stops request Sending a POST, PUT (maybe PATCH) with an accept header that is not application/json or xml (if enabled) used to complete the request before throwing a 406 error. This was wrong. Now it reports an error without dispatching/processing the requested transaction. This is the first of a series of refactors of the dispatch method to make it faster and more readable by using return early pattern and extracting methods from the code. changes: The following now return 406 errors not 400 errors invalid version specified with @apiver in URL. invalid version specified with @apiver in payload body invalid version specified in accept headers as application/vnd.roundup.test-vz+json or version property Parsing the accept header returns a 400 when presented with a parameter without an = sign or other parse error. They used to return a 406 which is wrong since the header is malformed rather than having a value I can't respond to. Some error messages were made clearer. Results in the case of an error are proper json error object rather than text/plain strings. New test added for testdetermine_output_formatBadAccept that test the new method using the same test cases as for testDispatchBadAccept. I intend to extend the test coverage for determine_output_format to cover more cases. This should be a faster unit test than for dispatch. Removed .lower() calls for accept_mime_type as the input values are taken from the values in the __accepted_content_type dict which only has lower case values.
author John Rouillard <rouilj@ieee.org>
date Sun, 08 Dec 2024 01:09:34 -0500
parents 132d450bdc00
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8134
132d450bdc00 Add a 'Getting started' note to test/README.txt
Ralf Schlatterbeck <rsc@runtux.com>
parents: 5005
diff changeset
1 Getting started:
132d450bdc00 Add a 'Getting started' note to test/README.txt
Ralf Schlatterbeck <rsc@runtux.com>
parents: 5005
diff changeset
2 For running the tests, you want to take a look at the documentation in
132d450bdc00 Add a 'Getting started' note to test/README.txt
Ralf Schlatterbeck <rsc@runtux.com>
parents: 5005
diff changeset
3 doc/developer.txt, in particular the section "Testing Notes".
132d450bdc00 Add a 'Getting started' note to test/README.txt
Ralf Schlatterbeck <rsc@runtux.com>
parents: 5005
diff changeset
4 For a test setup of the database backends, suitable documentation is
132d450bdc00 Add a 'Getting started' note to test/README.txt
Ralf Schlatterbeck <rsc@runtux.com>
parents: 5005
diff changeset
5 found in in doc/postgresql.txt for the Postgres backend, in the section
132d450bdc00 Add a 'Getting started' note to test/README.txt
Ralf Schlatterbeck <rsc@runtux.com>
parents: 5005
diff changeset
6 titled "Running the PostgreSQL unit tests". For the MySQL backend the
132d450bdc00 Add a 'Getting started' note to test/README.txt
Ralf Schlatterbeck <rsc@runtux.com>
parents: 5005
diff changeset
7 file doc/doc/mysql.txt has the documentation in section "Running the
132d450bdc00 Add a 'Getting started' note to test/README.txt
Ralf Schlatterbeck <rsc@runtux.com>
parents: 5005
diff changeset
8 MySQL tests".
132d450bdc00 Add a 'Getting started' note to test/README.txt
Ralf Schlatterbeck <rsc@runtux.com>
parents: 5005
diff changeset
9
4964
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
10 A number of tests uses the infrastructure of
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
11 db_test_base.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
12
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
13 grep "from db_test_base" -l *.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
14 benchmark.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
15 session_common.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
16 test_anydbm.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
17 test_indexer.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
18 test_memorydb.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
19 test_mysql.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
20 test_postgresql.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
21 test_security.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
22 test_sqlite.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
23 test_userauditor.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
24
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
25 grep "import db_test_base" -l *.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
26 test_cgi.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
27 test_jinja2.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
28 test_mailgw.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
29 test_xmlrpc.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
30
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
31 grep "import memory\|from memory" -l *.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
32 test_mailgw.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
33 test_memorydb.py
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
34
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
35
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
36 The remaining lines are an 2001 description from Richard,
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
37 which probably is outdated:
2c3cc4ccd024 Automatic tests: added some notes to the readme and a test_jinja2 stub.
Bernhard Reiter <bernhard@intevation.de>
parents: 4570
diff changeset
38
127
0791d13baea7 Added vim command to all source so that we don't get no steenkin' tabs :)
Richard Jones <richard@users.sourceforge.net>
parents: 95
diff changeset
39 Structure of the tests:
95
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
40
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
41 1 Test date classes
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
42 1.1 Date
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
43 1.2 Interval
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
44 2 Set up schema
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
45 3 Open with specific backend
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
46 3.1 anydbm
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
47 4 Create database base set (stati, priority, etc)
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
48 5 Perform some actions
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
49 6 Perform mail import
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
50 6.1 text/plain
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
51 6.2 multipart/mixed (with one text/plain)
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
52 6.3 text/html
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
53 6.4 multipart/alternative (with one text/plain)
cd4f0415d0dc rename for consistency
Richard Jones <richard@users.sourceforge.net>
parents:
diff changeset
54 6.5 multipart/alternative (with no text/plain)

Roundup Issue Tracker: http://roundup-tracker.org/