Example #1
0
class ControllerTestCase(unittest.TestCase):
    def setUp(self):
        self.db = SQLQuery(DBConfig)
        try:
            self.db.execute('CREATE TABLE test_table (id INT)', alter=True)
        except:
            pass
        self.control = Controller(self.db)

    def test_hello(self):
        hello = self.control.get_hello()
        self.assertIsInstance(hello, str)

    def test_help(self):
        help = self.control.get_help()
        self.assertIsInstance(help, str)

    def test_scheduled_stats(self):
        stats = self.control.get_stats(scheduled=True)
        self.assertTrue('Запланированный отчет' in stats)

    def test_requested_stats(self):
        stats = self.control.get_stats()
        self.assertTrue('Внеплановый отчет' in stats)

    # Altering queries
    def test_correct_altering_query_as_admin(self):
        query = 'INSERT INTO test_table VALUES (1)'
        result = self.control.execute_command(query, rightful=True)
        self.assertEqual(result, 'База данных успешно изменена!')

    def test_wrong_altering_query_as_admin(self):
        query = 'DELETE * FROM test_table WHERE'
        result = self.control.execute_command(query, rightful=True)
        self.assertTrue('Запрос сформулирован неправильно' in result)

    def test_correct_altering_query_as_user(self):
        query = 'INSERT INTO test_table VALUES (2)'
        result = self.control.execute_command(query)
        self.assertTrue('У вас недостаточно прав' in result)

    def test_wrong_altering_query_as_user(self):
        query = 'INSERT INTO test_table VALUES (2)'
        result = self.control.execute_command(query)
        self.assertTrue('У вас недостаточно прав' in result)

    # Simple queries
    def test_correct_simple_query_as_admin(self):
        query = 'SELECT * FROM test_table'
        result = self.control.execute_command(query, rightful=True)
        self.assertIsInstance(result, str)

    def test_wrong_simple_query_as_admin(self):
        query = 'SELECT non_existing_colum FROM test_table'
        result = self.control.execute_command(query, rightful=True)
        self.assertIsInstance(result, str)

    def test_correct_simple_query_as_user(self):
        query = 'SELECT * FROM test_table'
        result = self.control.execute_command(query)
        self.assertIsInstance(result, str)

    def test_wrong_simple_query_as_user(self):
        query = 'SELECT non_existing_colum FROM test_table'
        result = self.control.execute_command(query)
        self.assertIsInstance(result, str)

    def tearDown(self):
        self.db.execute('DROP TABLE test_table', alter=True)