pacifica/pacifica-cartd

View on GitHub
tests/test/orm_test.py

Summary

Maintainability
A
0 mins
Test Coverage
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""This tests some of the cart orm class."""
import os
import mock
from cherrypy.test import helper
from peewee import OperationalError
from pacifica.cartd.__main__ import dbsync
from pacifica.cartd.orm import Cart, File, OrmSync
from ..cart_db_setup_test import TestCartdBase


class TestOrm(TestCartdBase, helper.CPWebCase):
    """Contains the cart orm tests."""

    def test_cart_orm_db_setup(self):
        """Call database_setup."""
        dbsync('blah')
        self.assertTrue(Cart.table_exists())
        self.assertTrue(File.table_exists())

    @mock.patch.object(Cart, 'database_connect')
    @mock.patch.object(File, 'database_connect')
    def test_cart_orm_db_setup_error(self, mock_cart_dbcon, mock_file_dbcon):
        """Call database_setup."""
        mock_cart_dbcon.side_effect = OperationalError('Failing')
        mock_file_dbcon.side_effect = OperationalError('Failing')
        hit_exception = False
        os.environ['DATABASE_CONNECT_ATTEMPTS'] = '3'
        try:
            OrmSync.dbconn_blocking()
        except OperationalError:
            hit_exception = True
        self.assertTrue(hit_exception)
        del os.environ['DATABASE_CONNECT_ATTEMPTS']