def test_it_should_get_all_schema_migrations(self): expected_versions = [] expected_versions.append([1, "0", None, None, None, None]) expected_versions.append([2, "20090211120001", "label", "20090211120001_name", "sql_up", "sql_down"]) self.cursor_mock.fetchall.return_value = tuple(expected_versions) mysql = MySQL(self.config_mock, self.db_driver_mock) schema_migrations = mysql.get_all_schema_migrations() self.assertEquals(len(expected_versions), len(schema_migrations)) for index, migration in enumerate(schema_migrations): self.assertEqual(migration.id, expected_versions[index][0]) self.assertEqual(migration.version, expected_versions[index][1]) self.assertEqual(migration.label, expected_versions[index][2]) self.assertEqual(migration.file_name, expected_versions[index][3]) self.assertEqual(migration.sql_up, expected_versions[index][4] and expected_versions[index][4] or "") self.assertEqual(migration.sql_down, expected_versions[index][5] and expected_versions[index][5] or "") expected_query_calls = [ call('create database if not exists `migration_test`;') ] self.assertEqual(expected_query_calls, self.db_mock.query.mock_calls) self.db_mock.select_db.assert_called_with('migration_test') self.assertEqual(2, self.db_mock.commit.call_count) self.assertEqual(5, self.db_mock.close.call_count) expected_execute_calls = [ call('create table if not exists __db_version__ ( id int(11) NOT NULL AUTO_INCREMENT, version varchar(20) NOT NULL default "0", label varchar(255), name varchar(255), sql_up LONGTEXT, sql_down LONGTEXT, PRIMARY KEY (id))'), call('select count(*) from __db_version__;'), call('insert into __db_version__ (version) values ("0")'), call('select id, version, label, name, sql_up, sql_down from __db_version__ order by id;') ] self.assertEqual(expected_execute_calls, self.cursor_mock.execute.mock_calls) self.assertEqual(4, self.cursor_mock.close.call_count)
def test_it_should_get_all_schema_migrations(self): expected_versions = [] expected_versions.append([1, "0", None, None, None, None]) expected_versions.append([ 2, "20090211120001", "label", "20090211120001_name", "sql_up", "sql_down" ]) self.cursor_mock.fetchall.return_value = tuple(expected_versions) mysql = MySQL(self.config_mock, self.db_driver_mock) schema_migrations = mysql.get_all_schema_migrations() self.assertEquals(len(expected_versions), len(schema_migrations)) for index, migration in enumerate(schema_migrations): self.assertEqual(migration.id, expected_versions[index][0]) self.assertEqual(migration.version, expected_versions[index][1]) self.assertEqual(migration.label, expected_versions[index][2]) self.assertEqual(migration.file_name, expected_versions[index][3]) self.assertEqual( migration.sql_up, expected_versions[index][4] and expected_versions[index][4] or "") self.assertEqual( migration.sql_down, expected_versions[index][5] and expected_versions[index][5] or "") expected_query_calls = [ call('create database if not exists `migration_test`;') ] self.assertEqual(expected_query_calls, self.db_mock.query.mock_calls) self.db_mock.select_db.assert_called_with('migration_test') self.assertEqual(2, self.db_mock.commit.call_count) self.assertEqual(5, self.db_mock.close.call_count) expected_execute_calls = [ call( 'create table if not exists __db_version__ ( id int(11) NOT NULL AUTO_INCREMENT, version varchar(20) NOT NULL default "0", label varchar(255), name varchar(255), sql_up LONGTEXT, sql_down LONGTEXT, PRIMARY KEY (id))' ), call('select count(*) from __db_version__;'), call('insert into __db_version__ (version) values ("0")'), call( 'select id, version, label, name, sql_up, sql_down from __db_version__ order by id;' ) ] self.assertEqual(expected_execute_calls, self.cursor_mock.execute.mock_calls) self.assertEqual(4, self.cursor_mock.close.call_count)