Vincent, I've never tried this before, but I'm sure you can get it to work with a little fiddling. The test module is completely separate from the pip installed arches code. ROOT_DIR should point to your app root directory. TEST_DIR should point to your test directory. Hope that's helpful. -Alexei
Director of Web Development - Farallon Geographics, Inc. - 971.227.3173 On Sat, Nov 17, 2018 at 7:16 AM Vincent Meijer <[email protected]> wrote: > I was wondering what the recommended method is for adding unit tests to my > own Arches app. > > The unit test section in Arches core looks like an isolated python module > and I can't seem to import e.g. the test_settings.py file from my own app. > Also, when I try copying that settings file to my own app and then try to > run my own unit tests with it (from manage.py in my own app), the process > still looks for database init (sql) files in core Arches folders. > > And if I should copy/paste test_settings.py into my own app, what should I > set settings like ROOT_DIR and TEST_ROOT to? > > My current settings: > ROOT_DIR = > os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) > ROOT_DIR = os.path.normpath(os.path.join(ROOT_DIR, '..' ,'..', 'arches', > 'arches')) > TEST_ROOT = os.path.normpath(os.path.join(ROOT_DIR, '..', 'tests')) > > > But now I'm getting this stack: > Destroying old test database for alias 'default'... > Traceback (most recent call last): > File "manage.py", line 35, in <module> > execute_from_command_line(sys.argv) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/core/management/__init__.py" > , line 364, in execute_from_command_line > utility.execute() > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/core/management/__init__.py" > , line 356, in execute > self.fetch_command(subcommand).run_from_argv(self.argv) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/core/management/commands/test.py" > , line 29, in run_from_argv > super(Command, self).run_from_argv(argv) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/core/management/base.py" > , line 283, in run_from_argv > self.execute(*args, **cmd_options) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/core/management/base.py" > , line 330, in execute > output = self.handle(*args, **options) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/core/management/commands/test.py" > , line 62, in handle > failures = test_runner.run_tests(test_labels) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/test/runner.py", > line 601, in run_tests > old_config = self.setup_databases() > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/test/runner.py", > line 546, in setup_databases > self.parallel, **kwargs > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/test/utils.py", > line 187, in setup_databases > serialize=connection.settings_dict.get('TEST', {}).get('SERIALIZE', > True), > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/backends/base/creation.py" > , line 69, in create_test_db > run_syncdb=True, > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/core/management/__init__.py" > , line 131, in call_command > return command.execute(*args, **defaults) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/core/management/base.py" > , line 330, in execute > output = self.handle(*args, **options) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/core/management/commands/migrate.py" > , line 204, in handle > fake_initial=fake_initial, > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/migrations/executor.py" > , line 115, in migrate > state = self._migrate_all_forwards(state, plan, full_plan, fake=fake, > fake_initial=fake_initial) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/migrations/executor.py" > , line 145, in _migrate_all_forwards > state = self.apply_migration(state, migration, fake=fake, fake_initial > =fake_initial) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/migrations/executor.py" > , line 244, in apply_migration > state = migration.apply(state, schema_editor) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/migrations/migration.py" > , line 129, in apply > operation.database_forwards(self.app_label, schema_editor, old_state, > project_state) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/migrations/operations/special.py" > , line 193, in database_forwards > self.code(from_state.apps, schema_editor) > File "/web_root/arches/arches/app/models/migrations/0001_initial.py", > line 55, in make_permissions > create_permissions(model_app, verbosity=0) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/contrib/auth/management/__init__.py" > , line 63, in create_permissions > ctype = ContentType.objects.db_manager(using).get_for_model(klass) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/contrib/contenttypes/models.py" > , line 60, in get_for_model > model=opts.model_name, > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/manager.py" > , line 85, in manager_method > return getattr(self.get_queryset(), name)(*args, **kwargs) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/query.py" > , line 466, in get_or_create > return self._create_object_from_params(lookup, params) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/query.py" > , line 506, in _create_object_from_params > six.reraise(*exc_info) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/query.py" > , line 498, in _create_object_from_params > obj = self.create(**params) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/query.py" > , line 394, in create > obj.save(force_insert=True, using=self.db) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/base.py" > , line 808, in save > force_update=force_update, update_fields=update_fields) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/base.py" > , line 838, in save_base > updated = self._save_table(raw, cls, force_insert, force_update, using > , update_fields) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/base.py" > , line 924, in _save_table > result = self._do_insert(cls._base_manager, using, fields, update_pk, > raw) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/base.py" > , line 963, in _do_insert > using=using, raw=raw) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/manager.py" > , line 85, in manager_method > return getattr(self.get_queryset(), name)(*args, **kwargs) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/query.py" > , line 1076, in _insert > return query.get_compiler(using=using).execute_sql(return_id) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py" > , line 1112, in execute_sql > cursor.execute(sql, params) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/backends/utils.py" > , line 64, in execute > return self.cursor.execute(sql, params) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/utils.py", > line 94, in __exit__ > six.reraise(dj_exc_type, dj_exc_value, traceback) > File > "/web_root/ENV/local/lib/python2.7/site-packages/django/db/backends/utils.py" > , line 64, in execute > return self.cursor.execute(sql, params) > django.db.utils.IntegrityError: null value in column "name" violates not- > null constraint > DETAIL: Failing row contains (1, null, models, cardmodel). > > > Thanks! > Vincent > > -- > -- To post, send email to [email protected]. To unsubscribe, > send email to [email protected]. For more > information, visit https://groups.google.com/d/forum/archesproject?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Arches Project" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- -- To post, send email to [email protected]. To unsubscribe, send email to [email protected]. For more information, visit https://groups.google.com/d/forum/archesproject?hl=en --- You received this message because you are subscribed to the Google Groups "Arches Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
