15.2.149. camcops_server.cc_modules.cc_unittest

camcops_server/cc_modules/cc_unittest.py


Copyright (C) 2012-2020 Rudolf Cardinal (rudolf@pobox.com).

This file is part of CamCOPS.

CamCOPS is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

CamCOPS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with CamCOPS. If not, see <https://www.gnu.org/licenses/>.


Framework and support functions for unit tests.

class camcops_server.cc_modules.cc_unittest.BasicDatabaseTestCase(methodName='runTest')[source]

Test case that sets up some useful database records for testing: ID numbers, user, group, devices etc and has helper methods for creating patients and tasks

apply_standard_db_fields(obj: GenericTabletRecordMixin, era_now: bool = False) → None[source]

Writes some default values to an SQLAlchemy ORM object representing a record uploaded from a client (tablet) device.

Though we use the server device ID.

apply_standard_task_fields(task: Task) → None[source]

Writes some default values to an SQLAlchemy ORM object representing a task.

setUp() → None[source]

Hook method for setting up the test fixture before exercising it.

tearDown() → None[source]

Hook method for deconstructing the test fixture after testing it.

class camcops_server.cc_modules.cc_unittest.DemoDatabaseTestCase(methodName='runTest')[source]

Test case that sets up a demonstration CamCOPS database with two tasks of each type

class camcops_server.cc_modules.cc_unittest.DemoRequestTestCase(methodName='runTest')[source]

Test case that creates a demo Pyramid request that refers to a bare in-memory SQLite database.

dump_database(loglevel: int = 20) → None[source]

Writes the test in-memory SQLite database to the logging stream.

Parameters

loglevel – log level to use

dump_table(tablename: str, column_names: List[str] = None, loglevel: int = 20) → None[source]

Writes one table of the in-memory SQLite database to the logging stream.

Parameters
  • tablename – table to dump

  • column_names – column names to dump, or None for all

  • loglevel – log level to use

setUp() → None[source]

Hook method for setting up the test fixture before exercising it.

set_echo(echo: bool) → None[source]

Changes the database echo status.

class camcops_server.cc_modules.cc_unittest.ExtendedTestCase(methodName='runTest')[source]

A subclass of unittest.TestCase that provides some additional functionality.

classmethod announce(msg: str) → None[source]

Logs a message to the Python log.

assertIsInstanceOrNone(obj: object, cls: Type, msg: str = None)[source]

Asserts that obj is an instance of cls or is None. The parameter msg is used as part of the failure message if it isn’t.