def test_set_field_defaults(self): """ Test that `set_field_defaults` sets port to `MYSQL_SERVER_DEFAULT_PORT` if not specified. The `set_field_defaults` method is called when a MySQLServer is first created. """ default_mysql_server = MySQLServerFactory() self.assertEqual(default_mysql_server.port, MYSQL_SERVER_DEFAULT_PORT) custom_mysql_server = MySQLServerFactory(port=1234) self.assertEqual(custom_mysql_server.port, 1234)
def setUp(self): self.mysql_server = MySQLServerFactory()
class MySQLServerTest(TestCase): """ Test cases for the MySQLServer model. """ def setUp(self): self.mysql_server = MySQLServerFactory() def test_default_settings_name(self): """ Test that MySQLServer defines `DEFAULT_SETTINGS_NAME` field with appropriate value. """ try: default_settings_name = MySQLServer.DEFAULT_SETTINGS_NAME except AttributeError: self.fail('MySQLServer must define `DEFAULT_SETTINGS_NAME` field.') else: self.assertEqual(default_settings_name, 'DEFAULT_INSTANCE_MYSQL_URL') def test_protocol(self): """ Test that `protocol` property returns correct value. """ self.assertEqual(self.mysql_server.protocol, 'mysql') @ddt.data( (None, 'user', 'pass', 'mysql://*****:*****@mysql-server'), (None, 'user', None, 'mysql://user@mysql-server'), (None, None, 'pass', 'mysql://mysql-server'), (None, None, None, 'mysql://mysql-server'), (1234, 'user', 'pass', 'mysql://*****:*****@mysql-server:1234'), (1234, 'user', None, 'mysql://user@mysql-server:1234'), (1234, None, 'pass', 'mysql://mysql-server:1234'), (1234, None, None, 'mysql://mysql-server:1234'), ) @ddt.unpack def test_url(self, port, username, password, expected_url): """ Test that `url` property returns correct URL. """ self.mysql_server.hostname = 'mysql-server' if port: self.mysql_server.port = port if username: self.mysql_server.username = username if password: self.mysql_server.password = password self.mysql_server.save() self.assertEqual(self.mysql_server.url, expected_url) @ddt.data( (None, 'user', 'pass', True), (None, 'user', 'word', False), (None, 'name', 'pass', False), (None, 'name', 'word', False), (1234, 'user', 'pass', True), (1234, 'user', 'word', False), (1234, 'name', 'pass', False), (1234, 'name', 'word', False), (5678, 'user', 'pass', False), (5678, 'user', 'word', False), (5678, 'name', 'pass', False), (5678, 'name', 'word', False), ) @ddt.unpack def test_settings_match(self, port, username, password, expected_result): """ Test that `settings_match` method correctly reports whether settings of a MySQL server match the settings passed to the method. """ # If caller does not specify `port`, `settings_match` should compare # port of MySQL server to `MYSQL_SERVER_DEFAULT_PORT`, # so only set port on MySQL server if it is not `None`. if port: self.mysql_server.port = 1234 self.mysql_server.username = '******' self.mysql_server.password = '******' self.mysql_server.save() self.assertEqual( self.mysql_server.settings_match(username, password, port), expected_result) def test_set_field_defaults(self): """ Test that `set_field_defaults` sets port to `MYSQL_SERVER_DEFAULT_PORT` if not specified. The `set_field_defaults` method is called when a MySQLServer is first created. """ default_mysql_server = MySQLServerFactory() self.assertEqual(default_mysql_server.port, MYSQL_SERVER_DEFAULT_PORT) custom_mysql_server = MySQLServerFactory(port=1234) self.assertEqual(custom_mysql_server.port, 1234)
class MySQLServerTest(TestCase): """ Test cases for the MySQLServer model. """ def setUp(self): self.mysql_server = MySQLServerFactory() def test_default_settings_name(self): """ Test that MySQLServer defines `DEFAULT_SETTINGS_NAME` field with appropriate value. """ try: default_settings_name = MySQLServer.DEFAULT_SETTINGS_NAME except AttributeError: self.fail('MySQLServer must define `DEFAULT_SETTINGS_NAME` field.') else: self.assertEqual(default_settings_name, 'DEFAULT_INSTANCE_MYSQL_URL') def test_protocol(self): """ Test that `protocol` property returns correct value. """ self.assertEqual(self.mysql_server.protocol, 'mysql') @ddt.data( (None, 'user', 'pass', 'mysql://*****:*****@mysql-server'), (None, 'user', None, 'mysql://user@mysql-server'), (None, None, 'pass', 'mysql://mysql-server'), (None, None, None, 'mysql://mysql-server'), (1234, 'user', 'pass', 'mysql://*****:*****@mysql-server:1234'), (1234, 'user', None, 'mysql://user@mysql-server:1234'), (1234, None, 'pass', 'mysql://mysql-server:1234'), (1234, None, None, 'mysql://mysql-server:1234'), ) @ddt.unpack def test_url(self, port, username, password, expected_url): """ Test that `url` property returns correct URL. """ self.mysql_server.hostname = 'mysql-server' if port: self.mysql_server.port = port if username: self.mysql_server.username = username if password: self.mysql_server.password = password self.mysql_server.save() self.assertEqual(self.mysql_server.url, expected_url) @ddt.data( (None, 'user', 'pass', True), (None, 'user', 'word', False), (None, 'name', 'pass', False), (None, 'name', 'word', False), (1234, 'user', 'pass', True), (1234, 'user', 'word', False), (1234, 'name', 'pass', False), (1234, 'name', 'word', False), (5678, 'user', 'pass', False), (5678, 'user', 'word', False), (5678, 'name', 'pass', False), (5678, 'name', 'word', False), ) @ddt.unpack def test_settings_match(self, port, username, password, expected_result): """ Test that `settings_match` method correctly reports whether settings of a MySQL server match the settings passed to the method. """ # If caller does not specify `port`, `settings_match` should compare # port of MySQL server to `MYSQL_SERVER_DEFAULT_PORT`, # so only set port on MySQL server if it is not `None`. if port: self.mysql_server.port = 1234 self.mysql_server.username = '******' self.mysql_server.password = '******' self.mysql_server.save() self.assertEqual(self.mysql_server.settings_match(username, password, port), expected_result) def test_set_field_defaults(self): """ Test that `set_field_defaults` sets port to `MYSQL_SERVER_DEFAULT_PORT` if not specified. The `set_field_defaults` method is called when a MySQLServer is first created. """ default_mysql_server = MySQLServerFactory() self.assertEqual(default_mysql_server.port, MYSQL_SERVER_DEFAULT_PORT) custom_mysql_server = MySQLServerFactory(port=1234) self.assertEqual(custom_mysql_server.port, 1234)