You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
proxysql/test/authentication_test.py

51 lines
1.7 KiB

import MySQLdb
from MySQLdb import OperationalError
from nose.tools import raises
from proxysql_base_test import ProxySQLBaseTest
class AuthenticationTest(ProxySQLBaseTest):
def test_existing_user_with_correct_password_works(self):
version1 = self.run_query_mysql(
"SELECT @@version_comment LIMIT 1", "test",
return_result=True,
username="john", password="doe")
version2 = self.run_query_proxysql(
"SELECT @@version_comment LIMIT 1", "test",
return_result=True,
username="john", password="doe")
self.assertEqual(version1, version2)
def test_existing_user_with_correct_password_but_not_registerd_within_proxysql_does_not_work(self):
try:
self.run_query_proxysql("SELECT @@version_comment LIMIT 1", "test",
return_result=True,
username="danny", password="white")
# We shouldn't reach this point successfully, because it means we
# managed to authenticate with the wrong password
self.assertEqual(1, 0)
except OperationalError:
self.assertEqual(1, 1)
def test_existing_user_with_incorrect_password_does_not_work(self):
try:
self.run_query_proxysql("SELECT @@version_comment LIMIT 1", "test",
return_result=True,
username="john", password="doe2")
# We shouldn't reach this point successfully, because it means we
# managed to authenticate with the wrong password
self.assertEqual(1, 0)
except OperationalError:
self.assertEqual(1, 1)
def test_inexisting_user_with_random_password_does_not_work(self):
try:
self.run_query_proxysql("SELECT @@version_comment LIMIT 1", "test",
return_result=True,
username="johnny", password="randomdoe")
self.assertEqual(1, 0)
except OperationalError:
self.assertEqual(1, 1)