Files @ 177478f7d054
Branch filter:

Location: rattail-project/rattail/tests/db/test_core.py

lance
Database config/init overhaul.

This contains some not-very-atomic changes:

* Get rid of `get_session_class()` function and return to global `Session`
class approach.
* Primary database `Session` is now configured as part of command
initialization, by default.
* Make `config` object available to subcommands, and `Daemon` instances
(the beginning of the end for `edbob.config`!).
* Add `--stdout` and `--stderr` arguments to primary `Command`. These are
in turn made available to subcommands.
* Overhauled some subcommand logic per new patterns.
* Get rid of a few other random references to `edbob`.
* Added and improved several tests.
* Added ability to run tests using arbitrary database engine.

from unittest import TestCase

from rattail.db import core
from sqlalchemy import Column


class TestCore(TestCase):

    def test_uuid_column(self):
        column = core.uuid_column()
        self.assertTrue(isinstance(column, Column))
        self.assertEqual(column.name, None)
        self.assertTrue(column.primary_key)
        self.assertFalse(column.nullable)
        self.assertFalse(column.default is None)

    def test_uuid_column_no_default(self):
        column = core.uuid_column(default=None)
        self.assertTrue(column.default is None)

    def test_uuid_column_nullable(self):
        column = core.uuid_column(nullable=True)
        self.assertTrue(column.nullable)