示例#1
0
    def validate_models(self):
        import django
        try:
            django_setup = django.setup
        except AttributeError:
            pass
        else:
            django_setup()
        s = io.StringIO()
        try:
            from django.core.management.validation import get_validation_errors
        except ImportError:
            from django.core.management.base import BaseCommand
            cmd = BaseCommand()
            try:
                # since django 1.5
                from django.core.management.base import OutputWrapper
                cmd.stdout = OutputWrapper(sys.stdout)
                cmd.stderr = OutputWrapper(sys.stderr)
            except ImportError:
                cmd.stdout, cmd.stderr = sys.stdout, sys.stderr

            cmd.check()
        else:
            num_errors = get_validation_errors(s, None)
            if num_errors:
                raise RuntimeError(
                    'One or more Django models did not validate:\n{0}'.format(
                        s.getvalue()))
示例#2
0
 def test_import_csv_user_basic(self, requests_post, utils_get_landowner):
     """Check if parsing a wellformed CSV works fine"""
     cmd = BaseCommand()
     grp = Group(name='theuser')
     grp.save()
     ubi = UserImporter(cmd, './legacy/tests/basic-users-mapping.csv')
     self.assertEqual(User.objects.count(), 4)
示例#3
0
 def test_import_csv_categories_clean(self, requests_post,
                                      utils_get_landowner):
     """Check if clean removes existing objects"""
     cat = Category(name='Testcategory')
     cat.save()
     cmd = BaseCommand()
     cati = CategoryImporter(cmd, './legacy/tests/basic-cat.csv')
     self.assertEqual(Category.objects.count(), 11)
示例#4
0
    def add_arguments(self, parser):
        parser.formatter_class = ArchesHelpTextFormatter
        parser.add_argument(
            "operation",
            nargs="?",
            choices=["add_space", "delete_space", "load"],
            help="Operation Type;\n" +
            BaseCommand().style.SUCCESS("add_space") +
            " = Creates an Arches managed space in Kibana if no name is provided otherwise creates the space with the passed in name\n"
            + BaseCommand().style.SUCCESS("delete_space") +
            " = Deletes an Arches managed space in Kibana if no name is provided otherwise deletes the space with the passed in name\n"
            + BaseCommand().style.SUCCESS("load") +
            " = Loads Kibana objects/dashboards provided by .ndjson files into an existing or new space\n",
        )

        parser.add_argument("-n",
                            "--name",
                            action="store",
                            dest="name",
                            default="",
                            help="Name of Kibana space.")

        parser.add_argument(
            "-s",
            "--source_dir",
            action="store",
            dest="source_dir",
            default="",
            help="Directory where Kibana .ndjson files are stored.")

        parser.add_argument("-ow",
                            "--overwrite",
                            action="store_true",
                            dest="overwrite",
                            help="Overwirte existing objects.")

        parser.add_argument(
            "-y",
            "--yes",
            action="store_true",
            dest="yes",
            help=
            'Used to force a yes answer to any user input "continue? y/n" prompt'
        )
示例#5
0
 def test_export_legacy_users(self):
     """Check if CSV parsing and merging of old users work fine"""
     cmd = BaseCommand()
     lude = LegacyUserDetailsExporter(
         cmd,
         csvFilenameIssues='./legacy/tests/basic.csv',
         csvFilenameFeedback='./legacy/tests/basic-feedback.csv',
         csvFilenameUsers='./legacy/tests/basic-users.csv',
         filenameOutput='./legacy/tests/test-users.csv')
     lines = self._count_lines('./legacy/tests/test-users.csv')
     self.assertEqual(lines, 5 + 1 + 4 + 3)
示例#6
0
 def test_import_csv_issues_basic(self, requests_post, utils_get_landowner):
     """Check if parsing a wellformed CSV works fine"""
     cmd = BaseCommand()
     catA = Category(id=0, name='Category A')
     catA.save()
     for x in range(1, 8):
         cat = Category(id=x, name='A' + str(x), parent=catA)
         cat.save()
     requests_post.json.return_value = {'features': []}
     utils_get_landowner.return_value = 'TEST landowner'
     ii = IssueImporter(cmd, './legacy/tests/basic.csv')
     self.assertEqual(Issue.objects.count(), 8)
示例#7
0
 def handle(self, *args, **options):
     rickshaws = Rickshaw.wheels.all()
     for rickshaw in rickshaws:
         try:
             session = Session.objects.get(session_key=rickshaw.session)
             print(session.expire_date)
             if timezone.now() > session.expire_date:
                 rickshaw.delete()
             else:
                 BaseCommand("Session Data is still valid")
         except Session.DoesNotExist:
             rickshaw.delete()
             raise CommandError(
                 "Session Data does not exist, deleting rickshaw")
示例#8
0
 def validate_models(self):
     s = io.StringIO()
     try:
         from django.core.management.validation import get_validation_errors
     except ImportError:
         import django
         from django.core.management.base import BaseCommand
         django.setup()
         cmd = BaseCommand()
         cmd.stdout, cmd.stderr = sys.stdout, sys.stderr
         cmd.check()
     else:
         num_errors = get_validation_errors(s, None)
         if num_errors:
             raise RuntimeError(
                 'One or more Django models did not validate:\n{0}'.format(
                     s.getvalue()))
示例#9
0
 def test_import_csv_feedback_basic(self, requests_post,
                                    utils_get_landowner):
     """Check if parsing a wellformed CSV works fine"""
     cmd = BaseCommand()
     catA = Category(id=0, name='Category A')
     catA.save()
     requests_post.json.return_value = {'features': []}
     utils_get_landowner.return_value = 'TEST landowner'
     issue = Issue(id=1,
                   description="test issue with defined id",
                   position=Point(5, 23),
                   category=catA)
     issue.save()
     issue = Issue(id=2,
                   description="test issue with defined id",
                   position=Point(5, 23),
                   category=catA)
     issue.save()
     fbi = FeedbackImporter(cmd, './legacy/tests/basic-feedback.csv')
     self.assertEqual(Feedback.objects.count(), 2)
示例#10
0
 def test_import_csv_categories_basic(self, requests_post,
                                      utils_get_landowner):
     """Check if parsing a wellformed CSV works fine"""
     cmd = BaseCommand()
     ci = CategoryImporter(cmd, './legacy/tests/basic-cat.csv')
     self.assertEqual(Category.objects.count(), 11)