Example #1
0
 def test_abort(self):
     set_tz_migration_started('yellow')
     self.assertFalse(get_tz_migration_complete('yellow'))
     self.assertEqual(get_tz_migration_status('yellow'),
                      MigrationStatus.IN_PROGRESS)
     set_tz_migration_not_started('yellow')
     self.assertFalse(get_tz_migration_complete('yellow'))
     self.assertEqual(get_tz_migration_status('yellow'),
                      MigrationStatus.NOT_STARTED)
Example #2
0
    def handle(self, domain, **options):
        if should_use_sql_backend(domain):
            raise CommandError(
                'This command only works for couch-based domains.')

        filepath = get_planning_db_filepath(domain)
        self.stdout.write('Using file {}\n'.format(filepath))
        if options['BEGIN']:
            self.require_only_option('BEGIN', options)
            set_tz_migration_started(domain)
        if options['ABORT']:
            self.require_only_option('ABORT', options)
            set_tz_migration_not_started(domain)
        if options['blow_away']:
            delete_planning_db(domain)
            self.stdout.write('Removed file {}\n'.format(filepath))
        if options['prepare']:
            self.planning_db = prepare_planning_db(domain)
            self.stdout.write('Created and loaded file {}\n'.format(filepath))
        else:
            self.planning_db = get_planning_db(domain)

        if options['COMMIT']:
            self.require_only_option('COMMIT', options)
            assert get_tz_migration_status(
                domain, strict=True) == MigrationStatus.IN_PROGRESS
            commit_plan(domain, self.planning_db)
            set_tz_migration_complete(domain)

        if options['prepare_case_json']:
            prepare_case_json(self.planning_db)
        if options['stats']:
            self.valiate_forms_and_cases(domain)
        if options['show_diffs']:
            self.show_diffs()
        if options['play']:
            from corehq.apps.tzmigration.planning import *
            session = self.planning_db.Session()  # noqa
            try:
                import ipdb as pdb
            except ImportError:
                import pdb

            pdb.set_trace()
Example #3
0
    def handle(self, domain, **options):
        if should_use_sql_backend(domain):
            raise CommandError('This command only works for couch-based domains.')

        filepath = get_planning_db_filepath(domain)
        self.stdout.write('Using file {}\n'.format(filepath))
        if options['BEGIN']:
            self.require_only_option('BEGIN', options)
            set_tz_migration_started(domain)
        if options['ABORT']:
            self.require_only_option('ABORT', options)
            set_tz_migration_not_started(domain)
        if options['blow_away']:
            delete_planning_db(domain)
            self.stdout.write('Removed file {}\n'.format(filepath))
        if options['prepare']:
            self.planning_db = prepare_planning_db(domain)
            self.stdout.write('Created and loaded file {}\n'.format(filepath))
        else:
            self.planning_db = get_planning_db(domain)

        if options['COMMIT']:
            self.require_only_option('COMMIT', options)
            assert get_tz_migration_status(domain, strict=True) == MigrationStatus.IN_PROGRESS
            commit_plan(domain, self.planning_db)
            set_tz_migration_complete(domain)

        if options['prepare_case_json']:
            prepare_case_json(self.planning_db)
        if options['stats']:
            self.valiate_forms_and_cases(domain)
        if options['show_diffs']:
            self.show_diffs()
        if options['play']:
            from corehq.apps.tzmigration.planning import *
            session = self.planning_db.Session()  # noqa
            try:
                import ipdb as pdb
            except ImportError:
                import pdb

            pdb.set_trace()
Example #4
0
 def test_complete(self):
     set_tz_migration_complete('green')
     self.assertEqual(get_tz_migration_status('green'),
                      MigrationStatus.COMPLETE)
     self.assertTrue(get_tz_migration_complete('green'))
Example #5
0
 def test_in_progress(self):
     set_tz_migration_started('yellow')
     self.assertFalse(get_tz_migration_complete('yellow'))
     self.assertEqual(get_tz_migration_status('yellow'),
                      MigrationStatus.IN_PROGRESS)
Example #6
0
 def test_not_started(self):
     self.assertFalse(get_tz_migration_complete('red'))
     self.assertEqual(get_tz_migration_status('red'),
                      MigrationStatus.NOT_STARTED)