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()))
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)
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)
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' )
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)
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)
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")
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()))
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)
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)