Mercurial > p > roundup > code
comparison test/test_mysql.py @ 5036:380d8d8b30a3
Replace existing run_tests.py script with a pytest script
The existing run_test.py script is quite old, a bit restrictive, and
doesn't always behave as documented. The pytest testing tool is mature,
well documented, and maintained.
The run_tests.py script is generating by installing py.test and running:
py.tests --genscript=run_tests.py
Note: to generate a script that is compatible with python2.6 the command
needs to be run using python2.6
| author | John Kristensen <john@jerrykan.com> |
|---|---|
| date | Thu, 20 Aug 2015 18:15:23 +1000 |
| parents | 63c79c0992ae |
| children | 364c54991861 |
comparison
equal
deleted
inserted
replaced
| 5035:b5bb492e4b3c | 5036:380d8d8b30a3 |
|---|---|
| 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, | 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, |
| 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. | 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. |
| 17 | 17 |
| 18 import unittest, os, shutil, time, imp | 18 import unittest, os, shutil, time, imp |
| 19 | 19 |
| 20 import pytest | |
| 20 from roundup.hyperdb import DatabaseError | 21 from roundup.hyperdb import DatabaseError |
| 21 from roundup.backends import get_backend, have_backend | 22 from roundup.backends import get_backend, have_backend |
| 22 | 23 |
| 23 from db_test_base import DBTest, ROTest, config, SchemaTest, ClassicInitTest | 24 from db_test_base import DBTest, ROTest, config, SchemaTest, ClassicInitTest |
| 24 from db_test_base import ConcurrentDBTest, HTMLItemTest, FilterCacheTest | 25 from db_test_base import ConcurrentDBTest, HTMLItemTest, FilterCacheTest |
| 37 | 38 |
| 38 def nuke_database(self): | 39 def nuke_database(self): |
| 39 self.module.db_nuke(config) | 40 self.module.db_nuke(config) |
| 40 | 41 |
| 41 | 42 |
| 43 if not have_backend('mysql'): | |
| 44 SKIP_MYSQL = True | |
| 45 SKIP_MYSQL_REASON = 'Skipping MySQL tests: not enabled' | |
| 46 else: | |
| 47 try: | |
| 48 import MySQLdb | |
| 49 mysqlOpener.module.db_exists(config) | |
| 50 SKIP_MYSQL = False | |
| 51 SKIP_MYSQL_REASON = '' | |
| 52 except (MySQLdb.MySQLError, DatabaseError) as msg: | |
| 53 SKIP_MYSQL = True | |
| 54 SKIP_MYSQL_REASON = 'Skipping MySQL tests: %s' % str(msg) | |
| 55 | |
| 56 skip_mysql = pytest.mark.skipif(SKIP_MYSQL, reason=SKIP_MYSQL_REASON) | |
| 57 | |
| 58 | |
| 59 @skip_mysql | |
| 42 class mysqlDBTest(mysqlOpener, DBTest, unittest.TestCase): | 60 class mysqlDBTest(mysqlOpener, DBTest, unittest.TestCase): |
| 43 def setUp(self): | 61 def setUp(self): |
| 44 mysqlOpener.setUp(self) | 62 mysqlOpener.setUp(self) |
| 45 DBTest.setUp(self) | 63 DBTest.setUp(self) |
| 46 | 64 |
| 47 | 65 |
| 66 @skip_mysql | |
| 48 class mysqlROTest(mysqlOpener, ROTest, unittest.TestCase): | 67 class mysqlROTest(mysqlOpener, ROTest, unittest.TestCase): |
| 49 def setUp(self): | 68 def setUp(self): |
| 50 mysqlOpener.setUp(self) | 69 mysqlOpener.setUp(self) |
| 51 ROTest.setUp(self) | 70 ROTest.setUp(self) |
| 52 | 71 |
| 53 | 72 |
| 73 @skip_mysql | |
| 54 class mysqlSchemaTest(mysqlOpener, SchemaTest, unittest.TestCase): | 74 class mysqlSchemaTest(mysqlOpener, SchemaTest, unittest.TestCase): |
| 55 def setUp(self): | 75 def setUp(self): |
| 56 mysqlOpener.setUp(self) | 76 mysqlOpener.setUp(self) |
| 57 SchemaTest.setUp(self) | 77 SchemaTest.setUp(self) |
| 58 | 78 |
| 59 | 79 |
| 80 @skip_mysql | |
| 60 class mysqlClassicInitTest(mysqlOpener, ClassicInitTest, unittest.TestCase): | 81 class mysqlClassicInitTest(mysqlOpener, ClassicInitTest, unittest.TestCase): |
| 61 backend = 'mysql' | 82 backend = 'mysql' |
| 62 def setUp(self): | 83 def setUp(self): |
| 63 mysqlOpener.setUp(self) | 84 mysqlOpener.setUp(self) |
| 64 ClassicInitTest.setUp(self) | 85 ClassicInitTest.setUp(self) |
| 65 def tearDown(self): | 86 def tearDown(self): |
| 66 ClassicInitTest.tearDown(self) | 87 ClassicInitTest.tearDown(self) |
| 67 self.nuke_database() | 88 self.nuke_database() |
| 68 | 89 |
| 69 | 90 |
| 91 @skip_mysql | |
| 70 class mysqlConcurrencyTest(mysqlOpener, ConcurrentDBTest, unittest.TestCase): | 92 class mysqlConcurrencyTest(mysqlOpener, ConcurrentDBTest, unittest.TestCase): |
| 71 backend = 'mysql' | 93 backend = 'mysql' |
| 72 def setUp(self): | 94 def setUp(self): |
| 73 mysqlOpener.setUp(self) | 95 mysqlOpener.setUp(self) |
| 74 ConcurrentDBTest.setUp(self) | 96 ConcurrentDBTest.setUp(self) |
| 75 def tearDown(self): | 97 def tearDown(self): |
| 76 ConcurrentDBTest.tearDown(self) | 98 ConcurrentDBTest.tearDown(self) |
| 77 self.nuke_database() | 99 self.nuke_database() |
| 78 | 100 |
| 79 | 101 |
| 102 @skip_mysql | |
| 80 class mysqlHTMLItemTest(mysqlOpener, HTMLItemTest, unittest.TestCase): | 103 class mysqlHTMLItemTest(mysqlOpener, HTMLItemTest, unittest.TestCase): |
| 81 backend = 'mysql' | 104 backend = 'mysql' |
| 82 def setUp(self): | 105 def setUp(self): |
| 83 mysqlOpener.setUp(self) | 106 mysqlOpener.setUp(self) |
| 84 HTMLItemTest.setUp(self) | 107 HTMLItemTest.setUp(self) |
| 85 def tearDown(self): | 108 def tearDown(self): |
| 86 HTMLItemTest.tearDown(self) | 109 HTMLItemTest.tearDown(self) |
| 87 self.nuke_database() | 110 self.nuke_database() |
| 88 | 111 |
| 89 | 112 |
| 113 @skip_mysql | |
| 90 class mysqlFilterCacheTest(mysqlOpener, FilterCacheTest, unittest.TestCase): | 114 class mysqlFilterCacheTest(mysqlOpener, FilterCacheTest, unittest.TestCase): |
| 91 backend = 'mysql' | 115 backend = 'mysql' |
| 92 def setUp(self): | 116 def setUp(self): |
| 93 mysqlOpener.setUp(self) | 117 mysqlOpener.setUp(self) |
| 94 FilterCacheTest.setUp(self) | 118 FilterCacheTest.setUp(self) |
| 96 FilterCacheTest.tearDown(self) | 120 FilterCacheTest.tearDown(self) |
| 97 self.nuke_database() | 121 self.nuke_database() |
| 98 | 122 |
| 99 | 123 |
| 100 from session_common import RDBMSTest | 124 from session_common import RDBMSTest |
| 125 @skip_mysql | |
| 101 class mysqlSessionTest(mysqlOpener, RDBMSTest, unittest.TestCase): | 126 class mysqlSessionTest(mysqlOpener, RDBMSTest, unittest.TestCase): |
| 102 def setUp(self): | 127 def setUp(self): |
| 103 mysqlOpener.setUp(self) | 128 mysqlOpener.setUp(self) |
| 104 RDBMSTest.setUp(self) | 129 RDBMSTest.setUp(self) |
| 105 def tearDown(self): | 130 def tearDown(self): |
