From 34287b3ea8be99faea20ac675ce05f4fb503d8c7 Mon Sep 17 00:00:00 2001 From: Andrew Melton Date: Fri, 15 Nov 2013 13:31:25 -0500 Subject: [PATCH] Fixing imageexists migration --- ...auto__add_field_imageexists_message_id.py} | 5 ++- tests/unit/test_migrations_files.py | 32 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) rename stacktach/migrations/{0009_auto__add_field_imageexists_message_id.py => 0011_auto__add_field_imageexists_message_id.py} (97%) create mode 100644 tests/unit/test_migrations_files.py diff --git a/stacktach/migrations/0009_auto__add_field_imageexists_message_id.py b/stacktach/migrations/0011_auto__add_field_imageexists_message_id.py similarity index 97% rename from stacktach/migrations/0009_auto__add_field_imageexists_message_id.py rename to stacktach/migrations/0011_auto__add_field_imageexists_message_id.py index ac67ad0..bb95ca8 100644 --- a/stacktach/migrations/0009_auto__add_field_imageexists_message_id.py +++ b/stacktach/migrations/0011_auto__add_field_imageexists_message_id.py @@ -105,12 +105,13 @@ class Migration(SchemaMigration): 'Meta': {'object_name': 'InstanceExists'}, 'audit_period_beginning': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '20', 'decimal_places': '6', 'db_index': 'True'}), 'audit_period_ending': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '20', 'decimal_places': '6', 'db_index': 'True'}), - 'bandwidth_public_out': ('django.db.models.fields.BigIntegerField', [], {'null': 'True'}), + 'bandwidth_public_out': ('django.db.models.fields.BigIntegerField', [], {'default': '0'}), 'delete': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': u"orm['stacktach.InstanceDeletes']"}), 'deleted_at': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '20', 'decimal_places': '6', 'db_index': 'True'}), 'fail_reason': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '300', 'null': 'True', 'blank': 'True'}), u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'instance': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'instance_flavor_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '100', 'null': 'True', 'blank': 'True'}), 'instance_type_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), 'launched_at': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '20', 'decimal_places': '6', 'db_index': 'True'}), 'message_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), @@ -129,6 +130,7 @@ class Migration(SchemaMigration): 'deleted_at': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '20', 'decimal_places': '6', 'db_index': 'True'}), u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'instance': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'instance_flavor_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '100', 'null': 'True', 'blank': 'True'}), 'instance_type_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), 'launched_at': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '20', 'decimal_places': '6', 'db_index': 'True'}), 'os_architecture': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), @@ -144,6 +146,7 @@ class Migration(SchemaMigration): 'Meta': {'object_name': 'InstanceUsage'}, u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), 'instance': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'instance_flavor_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '100', 'null': 'True', 'blank': 'True'}), 'instance_type_id': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '50', 'null': 'True', 'blank': 'True'}), 'launched_at': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '20', 'decimal_places': '6', 'db_index': 'True'}), 'os_architecture': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), diff --git a/tests/unit/test_migrations_files.py b/tests/unit/test_migrations_files.py new file mode 100644 index 0000000..0c0237b --- /dev/null +++ b/tests/unit/test_migrations_files.py @@ -0,0 +1,32 @@ +from os import listdir +import re + +from stacktach import migrations + +from tests.unit import StacktachBaseTestCase + + +class MigrationsTestCase(StacktachBaseTestCase): + def test_no_duplicate_numbers(self): + migrs = {} + + migrations_file = migrations.__file__ + migrations_dir = migrations_file[:-len('__init__.py')-1] + + migr_match = re.compile('[0-9]{4}.*.py') + files = [f for f in listdir(migrations_dir) + if re.match(migr_match, f)] + + for f in files: + migr_number = f[0:4] + migr_list = migrs.get(migr_number, []) + migr_list.append(f) + migrs[migr_number] = migr_list + + dups = [] + for num in migrs: + if len(migrs[num]) > 1: + dups.append(num) + + msg = "Duplicate migrations found for number(s) %s" % ' '.join(dups) + self.assertEqual(len(dups), 0, msg) \ No newline at end of file