Bug 2274104 - python-django-extensions fails to build with pytest 8: sqlite3.OperationalError: no such table: django_extensions_permmodel
Summary: python-django-extensions fails to build with pytest 8: sqlite3.OperationalErr...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-django-extensions
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ali Erdinc Koroglu
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 2256331
TreeView+ depends on / blocked
 
Reported: 2024-04-09 07:20 UTC by Tomáš Hrnčiar
Modified: 2025-01-31 19:46 UTC (History)
6 users (show)

Fixed In Version: python-django-extensions-3.2.3-9.fc42
Clone Of:
Environment:
Last Closed: 2025-01-31 19:46:56 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Fedora Package Sources python-django-extensions pull-request 6 0 None None None 2025-01-31 17:10:03 UTC
Github django-extensions django-extensions issues 1877 0 None open Compatibility with pytest 8 2024-05-28 07:12:49 UTC

Description Tomáš Hrnčiar 2024-04-09 07:20:41 UTC
python-django-extensions fails to build with pytest 8.

=================================== FAILURES ===================================
_____________________ DumpScriptTests.test_replaced_stderr _____________________

self = <django.db.backends.utils.CursorWrapper object at 0x7ff39434eae0>
sql = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()
ignored_wrapper_args = (False, {'connection': <DatabaseWrapper vendor='sqlite' alias='default'>, 'cursor': <django.db.backends.utils.CursorWrapper object at 0x7ff39434eae0>})

    def _execute(self, sql, params, *ignored_wrapper_args):
        self.db.validate_no_broken_transaction()
        with self.db.wrap_database_errors:
            if params is None:
                # params default might be backend specific.
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

/usr/lib/python3.12/site-packages/django/db/backends/utils.py:89: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x7ff394527a40>
query = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()

    def execute(self, query, params=None):
        if params is None:
            return super().execute(query)
        # Extract names if params is a mapping, i.e. "pyformat" style is used.
        param_names = list(params) if isinstance(params, Mapping) else None
        query = self.convert_query(query, param_names=param_names)
>       return super().execute(query, params)
E       sqlite3.OperationalError: no such table: django_extensions_permmodel

/usr/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:328: OperationalError

The above exception was the direct cause of the following exception:

self = <tests.test_dumpscript.DumpScriptTests testMethod=test_replaced_stderr>

    def test_replaced_stderr(self):
        # check if stderr can be replaced, without changing stdout
        n = Name(name='Fred')
        n.save()
        tmp_err = StringIO()
        sys.stderr = StringIO()
>       call_command('dumpscript', 'django_extensions', stderr=tmp_err)

tests/test_dumpscript.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/site-packages/django/core/management/__init__.py:194: in call_command
    return command.execute(*args, **defaults)
/usr/lib/python3.12/site-packages/django/core/management/base.py:458: in execute
    output = self.handle(*args, **options)
django_extensions/management/utils.py:62: in inner
    ret = func(self, *args, **kwargs)
django_extensions/management/commands/dumpscript.py:118: in handle
    self.stdout.write(str(script))
django_extensions/management/commands/dumpscript.py:181: in __str__
    return flatten_blocks(self.lines, num_indents=self.indent)
django_extensions/management/commands/dumpscript.py:475: in get_lines
    code.append(model_class.lines)
django_extensions/management/commands/dumpscript.py:219: in get_lines
    for counter, item in enumerate(self.model._default_manager.all()):
/usr/lib/python3.12/site-packages/django/db/models/query.py:398: in __iter__
    self._fetch_all()
/usr/lib/python3.12/site-packages/django/db/models/query.py:1881: in _fetch_all
    self._result_cache = list(self._iterable_class(self))
/usr/lib/python3.12/site-packages/django/db/models/query.py:91: in __iter__
    results = compiler.execute_sql(
/usr/lib/python3.12/site-packages/django/db/models/sql/compiler.py:1562: in execute_sql
    cursor.execute(sql, params)
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:67: in execute
    return self._execute_with_wrappers(
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:80: in _execute_with_wrappers
    return executor(sql, params, many, context)
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:84: in _execute
    with self.db.wrap_database_errors:
/usr/lib/python3.12/site-packages/django/db/utils.py:91: in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:89: in _execute
    return self.cursor.execute(sql, params)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x7ff394527a40>
query = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()

    def execute(self, query, params=None):
        if params is None:
            return super().execute(query)
        # Extract names if params is a mapping, i.e. "pyformat" style is used.
        param_names = list(params) if isinstance(params, Mapping) else None
        query = self.convert_query(query, param_names=param_names)
>       return super().execute(query, params)
E       django.db.utils.OperationalError: no such table: django_extensions_permmodel

/usr/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:328: OperationalError
_____________________ DumpScriptTests.test_replaced_stdout _____________________

self = <django.db.backends.utils.CursorWrapper object at 0x7ff394341a00>
sql = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()
ignored_wrapper_args = (False, {'connection': <DatabaseWrapper vendor='sqlite' alias='default'>, 'cursor': <django.db.backends.utils.CursorWrapper object at 0x7ff394341a00>})

    def _execute(self, sql, params, *ignored_wrapper_args):
        self.db.validate_no_broken_transaction()
        with self.db.wrap_database_errors:
            if params is None:
                # params default might be backend specific.
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

/usr/lib/python3.12/site-packages/django/db/backends/utils.py:89: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x7ff3945257f0>
query = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()

    def execute(self, query, params=None):
        if params is None:
            return super().execute(query)
        # Extract names if params is a mapping, i.e. "pyformat" style is used.
        param_names = list(params) if isinstance(params, Mapping) else None
        query = self.convert_query(query, param_names=param_names)
>       return super().execute(query, params)
E       sqlite3.OperationalError: no such table: django_extensions_permmodel

/usr/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:328: OperationalError

The above exception was the direct cause of the following exception:

self = <tests.test_dumpscript.DumpScriptTests testMethod=test_replaced_stdout>

    def test_replaced_stdout(self):
        # check if stdout can be replaced
        sys.stdout = StringIO()
        n = Name(name='Mike')
        n.save()
        tmp_out = StringIO()
>       call_command('dumpscript', 'django_extensions', stdout=tmp_out)

tests/test_dumpscript.py:32: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/site-packages/django/core/management/__init__.py:194: in call_command
    return command.execute(*args, **defaults)
/usr/lib/python3.12/site-packages/django/core/management/base.py:458: in execute
    output = self.handle(*args, **options)
django_extensions/management/utils.py:62: in inner
    ret = func(self, *args, **kwargs)
django_extensions/management/commands/dumpscript.py:118: in handle
    self.stdout.write(str(script))
django_extensions/management/commands/dumpscript.py:181: in __str__
    return flatten_blocks(self.lines, num_indents=self.indent)
django_extensions/management/commands/dumpscript.py:475: in get_lines
    code.append(model_class.lines)
django_extensions/management/commands/dumpscript.py:219: in get_lines
    for counter, item in enumerate(self.model._default_manager.all()):
/usr/lib/python3.12/site-packages/django/db/models/query.py:398: in __iter__
    self._fetch_all()
/usr/lib/python3.12/site-packages/django/db/models/query.py:1881: in _fetch_all
    self._result_cache = list(self._iterable_class(self))
/usr/lib/python3.12/site-packages/django/db/models/query.py:91: in __iter__
    results = compiler.execute_sql(
/usr/lib/python3.12/site-packages/django/db/models/sql/compiler.py:1562: in execute_sql
    cursor.execute(sql, params)
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:67: in execute
    return self._execute_with_wrappers(
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:80: in _execute_with_wrappers
    return executor(sql, params, many, context)
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:84: in _execute
    with self.db.wrap_database_errors:
/usr/lib/python3.12/site-packages/django/db/utils.py:91: in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:89: in _execute
    return self.cursor.execute(sql, params)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x7ff3945257f0>
query = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()

    def execute(self, query, params=None):
        if params is None:
            return super().execute(query)
        # Extract names if params is a mapping, i.e. "pyformat" style is used.
        param_names = list(params) if isinstance(params, Mapping) else None
        query = self.convert_query(query, param_names=param_names)
>       return super().execute(query, params)
E       django.db.utils.OperationalError: no such table: django_extensions_permmodel

/usr/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:328: OperationalError
__________________________ DumpScriptTests.test_runs ___________________________

self = <django.db.backends.utils.CursorWrapper object at 0x7ff3943422a0>
sql = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()
ignored_wrapper_args = (False, {'connection': <DatabaseWrapper vendor='sqlite' alias='default'>, 'cursor': <django.db.backends.utils.CursorWrapper object at 0x7ff3943422a0>})

    def _execute(self, sql, params, *ignored_wrapper_args):
        self.db.validate_no_broken_transaction()
        with self.db.wrap_database_errors:
            if params is None:
                # params default might be backend specific.
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

/usr/lib/python3.12/site-packages/django/db/backends/utils.py:89: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x7ff394526ba0>
query = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()

    def execute(self, query, params=None):
        if params is None:
            return super().execute(query)
        # Extract names if params is a mapping, i.e. "pyformat" style is used.
        param_names = list(params) if isinstance(params, Mapping) else None
        query = self.convert_query(query, param_names=param_names)
>       return super().execute(query, params)
E       sqlite3.OperationalError: no such table: django_extensions_permmodel

/usr/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:328: OperationalError

The above exception was the direct cause of the following exception:

self = <tests.test_dumpscript.DumpScriptTests testMethod=test_runs>

    def test_runs(self):
        # lame test...does it run?
        n = Name(name='Gabriel')
        n.save()
>       call_command('dumpscript', 'django_extensions')

tests/test_dumpscript.py:23: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/site-packages/django/core/management/__init__.py:194: in call_command
    return command.execute(*args, **defaults)
/usr/lib/python3.12/site-packages/django/core/management/base.py:458: in execute
    output = self.handle(*args, **options)
django_extensions/management/utils.py:62: in inner
    ret = func(self, *args, **kwargs)
django_extensions/management/commands/dumpscript.py:118: in handle
    self.stdout.write(str(script))
django_extensions/management/commands/dumpscript.py:181: in __str__
    return flatten_blocks(self.lines, num_indents=self.indent)
django_extensions/management/commands/dumpscript.py:475: in get_lines
    code.append(model_class.lines)
django_extensions/management/commands/dumpscript.py:219: in get_lines
    for counter, item in enumerate(self.model._default_manager.all()):
/usr/lib/python3.12/site-packages/django/db/models/query.py:398: in __iter__
    self._fetch_all()
/usr/lib/python3.12/site-packages/django/db/models/query.py:1881: in _fetch_all
    self._result_cache = list(self._iterable_class(self))
/usr/lib/python3.12/site-packages/django/db/models/query.py:91: in __iter__
    results = compiler.execute_sql(
/usr/lib/python3.12/site-packages/django/db/models/sql/compiler.py:1562: in execute_sql
    cursor.execute(sql, params)
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:67: in execute
    return self._execute_with_wrappers(
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:80: in _execute_with_wrappers
    return executor(sql, params, many, context)
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:84: in _execute
    with self.db.wrap_database_errors:
/usr/lib/python3.12/site-packages/django/db/utils.py:91: in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:89: in _execute
    return self.cursor.execute(sql, params)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x7ff394526ba0>
query = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()

    def execute(self, query, params=None):
        if params is None:
            return super().execute(query)
        # Extract names if params is a mapping, i.e. "pyformat" style is used.
        param_names = list(params) if isinstance(params, Mapping) else None
        query = self.convert_query(query, param_names=param_names)
>       return super().execute(query, params)
E       django.db.utils.OperationalError: no such table: django_extensions_permmodel

/usr/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:328: OperationalError
______________________ DumpScriptTests.test_valid_syntax _______________________

self = <django.db.backends.utils.CursorWrapper object at 0x7ff394330c80>
sql = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()
ignored_wrapper_args = (False, {'connection': <DatabaseWrapper vendor='sqlite' alias='default'>, 'cursor': <django.db.backends.utils.CursorWrapper object at 0x7ff394330c80>})

    def _execute(self, sql, params, *ignored_wrapper_args):
        self.db.validate_no_broken_transaction()
        with self.db.wrap_database_errors:
            if params is None:
                # params default might be backend specific.
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

/usr/lib/python3.12/site-packages/django/db/backends/utils.py:89: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x7ff394526b10>
query = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()

    def execute(self, query, params=None):
        if params is None:
            return super().execute(query)
        # Extract names if params is a mapping, i.e. "pyformat" style is used.
        param_names = list(params) if isinstance(params, Mapping) else None
        query = self.convert_query(query, param_names=param_names)
>       return super().execute(query, params)
E       sqlite3.OperationalError: no such table: django_extensions_permmodel

/usr/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:328: OperationalError

The above exception was the direct cause of the following exception:

self = <tests.test_dumpscript.DumpScriptTests testMethod=test_valid_syntax>

    def test_valid_syntax(self):
        n1 = Name(name='John')
        n1.save()
        p1 = Person(name=n1, age=40)
        p1.save()
        n2 = Name(name='Jane')
        n2.save()
        p2 = Person(name=n2, age=18)
        p2.save()
        p2.children.add(p1)
        note1 = Note(note="This is the first note.")
        note1.save()
        note2 = Note(note="This is the second note.")
        note2.save()
        p2.notes.add(note1, note2)
        tmp_out = StringIO()
>       call_command('dumpscript', 'django_extensions', stdout=tmp_out)

tests/test_dumpscript.py:65: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/site-packages/django/core/management/__init__.py:194: in call_command
    return command.execute(*args, **defaults)
/usr/lib/python3.12/site-packages/django/core/management/base.py:458: in execute
    output = self.handle(*args, **options)
django_extensions/management/utils.py:62: in inner
    ret = func(self, *args, **kwargs)
django_extensions/management/commands/dumpscript.py:118: in handle
    self.stdout.write(str(script))
django_extensions/management/commands/dumpscript.py:181: in __str__
    return flatten_blocks(self.lines, num_indents=self.indent)
django_extensions/management/commands/dumpscript.py:475: in get_lines
    code.append(model_class.lines)
django_extensions/management/commands/dumpscript.py:219: in get_lines
    for counter, item in enumerate(self.model._default_manager.all()):
/usr/lib/python3.12/site-packages/django/db/models/query.py:398: in __iter__
    self._fetch_all()
/usr/lib/python3.12/site-packages/django/db/models/query.py:1881: in _fetch_all
    self._result_cache = list(self._iterable_class(self))
/usr/lib/python3.12/site-packages/django/db/models/query.py:91: in __iter__
    results = compiler.execute_sql(
/usr/lib/python3.12/site-packages/django/db/models/sql/compiler.py:1562: in execute_sql
    cursor.execute(sql, params)
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:67: in execute
    return self._execute_with_wrappers(
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:80: in _execute_with_wrappers
    return executor(sql, params, many, context)
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:84: in _execute
    with self.db.wrap_database_errors:
/usr/lib/python3.12/site-packages/django/db/utils.py:91: in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:89: in _execute
    return self.cursor.execute(sql, params)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x7ff394526b10>
query = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()

    def execute(self, query, params=None):
        if params is None:
            return super().execute(query)
        # Extract names if params is a mapping, i.e. "pyformat" style is used.
        param_names = list(params) if isinstance(params, Mapping) else None
        query = self.convert_query(query, param_names=param_names)
>       return super().execute(query, params)
E       django.db.utils.OperationalError: no such table: django_extensions_permmodel

/usr/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:328: OperationalError
___________________ DumpScriptTests.test_with_datetimefield ____________________

self = <django.db.backends.utils.CursorWrapper object at 0x7ff394324590>
sql = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()
ignored_wrapper_args = (False, {'connection': <DatabaseWrapper vendor='sqlite' alias='default'>, 'cursor': <django.db.backends.utils.CursorWrapper object at 0x7ff394324590>})

    def _execute(self, sql, params, *ignored_wrapper_args):
        self.db.validate_no_broken_transaction()
        with self.db.wrap_database_errors:
            if params is None:
                # params default might be backend specific.
                return self.cursor.execute(sql)
            else:
>               return self.cursor.execute(sql, params)

/usr/lib/python3.12/site-packages/django/db/backends/utils.py:89: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x7ff3945276e0>
query = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()

    def execute(self, query, params=None):
        if params is None:
            return super().execute(query)
        # Extract names if params is a mapping, i.e. "pyformat" style is used.
        param_names = list(params) if isinstance(params, Mapping) else None
        query = self.convert_query(query, param_names=param_names)
>       return super().execute(query, params)
E       sqlite3.OperationalError: no such table: django_extensions_permmodel

/usr/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:328: OperationalError

The above exception was the direct cause of the following exception:

self = <tests.test_dumpscript.DumpScriptTests testMethod=test_with_datetimefield>

    @override_settings(TIME_ZONE='Asia/Seoul')
    def test_with_datetimefield(self):
        django = Club.objects.create(name='Club Django')
        Note.objects.create(
            note='Django Tips',
            club=django,
        )
    
        dumpscript_path = './django_extensions/scripts'
    
        os.mkdir(dumpscript_path)
        open(dumpscript_path + '/__init__.py', 'w').close()  # for python 2.7
    
        # This script will have a dateutil codes.
        # e.g. importer.locate_object(...,
        # 'date_joined': dateutil.parser.parse("2019-05-20T03:32:27.144586+09:00")
        with open(dumpscript_path + '/test.py', 'wt') as test:
>           call_command('dumpscript', 'django_extensions', stdout=test)

tests/test_dumpscript.py:90: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/site-packages/django/core/management/__init__.py:194: in call_command
    return command.execute(*args, **defaults)
/usr/lib/python3.12/site-packages/django/core/management/base.py:458: in execute
    output = self.handle(*args, **options)
django_extensions/management/utils.py:62: in inner
    ret = func(self, *args, **kwargs)
django_extensions/management/commands/dumpscript.py:118: in handle
    self.stdout.write(str(script))
django_extensions/management/commands/dumpscript.py:181: in __str__
    return flatten_blocks(self.lines, num_indents=self.indent)
django_extensions/management/commands/dumpscript.py:475: in get_lines
    code.append(model_class.lines)
django_extensions/management/commands/dumpscript.py:219: in get_lines
    for counter, item in enumerate(self.model._default_manager.all()):
/usr/lib/python3.12/site-packages/django/db/models/query.py:398: in __iter__
    self._fetch_all()
/usr/lib/python3.12/site-packages/django/db/models/query.py:1881: in _fetch_all
    self._result_cache = list(self._iterable_class(self))
/usr/lib/python3.12/site-packages/django/db/models/query.py:91: in __iter__
    results = compiler.execute_sql(
/usr/lib/python3.12/site-packages/django/db/models/sql/compiler.py:1562: in execute_sql
    cursor.execute(sql, params)
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:67: in execute
    return self._execute_with_wrappers(
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:80: in _execute_with_wrappers
    return executor(sql, params, many, context)
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:84: in _execute
    with self.db.wrap_database_errors:
/usr/lib/python3.12/site-packages/django/db/utils.py:91: in __exit__
    raise dj_exc_value.with_traceback(traceback) from exc_value
/usr/lib/python3.12/site-packages/django/db/backends/utils.py:89: in _execute
    return self.cursor.execute(sql, params)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <django.db.backends.sqlite3.base.SQLiteCursorWrapper object at 0x7ff3945276e0>
query = 'SELECT "django_extensions_permmodel"."id" FROM "django_extensions_permmodel"'
params = ()

    def execute(self, query, params=None):
        if params is None:
            return super().execute(query)
        # Extract names if params is a mapping, i.e. "pyformat" style is used.
        param_names = list(params) if isinstance(params, Mapping) else None
        query = self.convert_query(query, param_names=param_names)
>       return super().execute(query, params)
E       django.db.utils.OperationalError: no such table: django_extensions_permmodel

/usr/lib/python3.12/site-packages/django/db/backends/sqlite3/base.py:328: OperationalError
=============================== warnings summary ===============================
../../../../usr/lib/python3.12/site-packages/django/conf/__init__.py:241
  /usr/lib/python3.12/site-packages/django/conf/__init__.py:241: RemovedInDjango50Warning: The default value of USE_TZ will change from False to True in Django 5.0. Set USE_TZ to False in your project settings if you want to keep the current default behavior.
    warnings.warn(

../../../../usr/lib/python3.12/site-packages/django/db/models/options.py:210
tests/auth/test_mixins.py::ModelUserFieldPermissionMixinTests::test_permission_denied_and_redirect
  /usr/lib/python3.12/site-packages/django/db/models/options.py:210: RemovedInDjango51Warning: 'index_together' is deprecated. Use 'Meta.indexes' in 'testapp.SqlDiff' instead.
    warnings.warn(

django_extensions/management/commands/pipchecker.py:18
django_extensions/management/commands/pipchecker.py:18
  /builddir/build/BUILD/django-extensions-3.2.3/django_extensions/management/commands/pipchecker.py:18: DeprecationWarning: distutils Version classes are deprecated. Use packaging.version instead.
    if LooseVersion(pip.__version__) >= LooseVersion('19.0'):

tests/management/commands/test_pipchecker.py:8
  /builddir/build/BUILD/django-extensions-3.2.3/tests/management/commands/test_pipchecker.py:8: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
    import pkg_resources

tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsExceptionsTests::test_should_raise_CommandEror_if_more_than_one_migration_matches_to_given_arg
tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsExceptionsTests::test_should_raise_CommandEror_if_squashed_migration_not_found
tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsExceptionsTests::test_should_raise_CommandEror_if_squashed_migration_not_foundee
tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsExceptionsTests::test_should_raise_CommandError_if_app_does_not_have_migrations
tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsExceptionsTests::test_should_raise_CommandError_when_database_does_not_exist
tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsTests::test_should_delete_squashed_migrations
tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsTests::test_should_delete_squashed_migrations_if_interactive_mode_is_set_to_False
tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsTests::test_should_not_delete_anything
tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsTests::test_should_not_delete_files_for_given_squashed_migration
  /usr/lib/python3.12/site-packages/django/db/models/base.py:366: RuntimeWarning: Model 'testapp_with_appconfig.titlemodel' was already registered. Reloading models is not advised as it can lead to inconsistencies, most notably with related models.
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)

tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsExceptionsTests::test_should_raise_CommandEror_if_squashed_migration_not_found
tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsTests::test_should_delete_squashed_migrations_if_interactive_mode_is_set_to_False
tests/management/commands/test_delete_squashed_migrations.py::DeleteSquashedMigrationsTests::test_should_not_delete_files_for_given_squashed_migration
  /usr/lib/python3.12/site-packages/django/db/models/base.py:366: RuntimeWarning: Model 'testapp_with_appconfig.namemodel' was already registered. Reloading models is not advised as it can lead to inconsistencies, most notably with related models.
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)

tests/management/commands/test_describe_form.py::DescribeFormTests::test_should_print_form_definition_for_TestModel_with_non_editable_field
tests/management/commands/test_describe_form.py::DescribeFormTests::test_should_print_form_with_fields_for_TestModel
  /usr/lib/python3.12/site-packages/django/db/models/base.py:366: RuntimeWarning: Model 'testapp.basemodel' was already registered. Reloading models is not advised as it can lead to inconsistencies, most notably with related models.
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)

tests/management/commands/test_describe_form.py::DescribeFormTests::test_should_print_form_definition_for_TestModel_with_non_editable_field
tests/management/commands/test_describe_form.py::DescribeFormTests::test_should_print_form_with_fields_for_TestModel
  /usr/lib/python3.12/site-packages/django/db/models/base.py:366: RuntimeWarning: Model 'testapp.noneditablemodel' was already registered. Reloading models is not advised as it can lead to inconsistencies, most notably with related models.
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)

tests/management/commands/test_drop_test_database.py: 11 warnings
tests/management/commands/test_reset_db.py: 3 warnings
tests/management/commands/test_reset_schema.py: 1 warning
tests/management/commands/test_sqlcreate.py: 6 warnings
tests/management/commands/test_sqldsn.py: 13 warnings
  /usr/lib64/python3.12/unittest/case.py:589: UserWarning: Overriding setting DATABASES can lead to unexpected behavior.
    if method() is not None:

tests/management/commands/test_reset_db.py::ResetDbSqlite3Tests::test_should_cancel_reset_db_if_input_is_different_than_yes
tests/management/commands/test_reset_db.py::ResetDbMysqlTests::test_should_cancel_reset_db_if_input_is_different_than_yes
tests/management/commands/test_reset_db.py::ResetDbPostgresqlTests::test_should_cancel_reset_db_if_input_is_different_than_yes
tests/management/commands/test_reset_schema.py::ResetSchemaTests::test_should_cancel_reset_schema_and_print_info_if_input_is_different_than_yes
  /usr/lib/python3.12/site-packages/_pytest/unittest.py:116: UserWarning: Overriding setting DATABASES can lead to unexpected behavior.
    setup()

tests/management/commands/test_update_permissions.py::UpdatePermissionsTests::test_should_reload_permission_only_for_specified_apps
tests/management/commands/test_update_permissions.py::UpdatePermissionsTests::test_should_update_permission_if_name_changed
tests/management/commands/test_update_permissions.py::UpdatePermissionsTests::test_works
  /usr/lib/python3.12/site-packages/django/db/models/base.py:366: RuntimeWarning: Model 'django_extensions.permmodel' was already registered. Reloading models is not advised as it can lead to inconsistencies, most notably with related models.
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)

tests/management/commands/test_update_permissions.py::UpdatePermissionsTests::test_should_reload_permission_only_for_specified_apps
tests/management/commands/test_update_permissions.py::UpdatePermissionsTests::test_should_update_permission_if_name_changed
tests/management/commands/test_update_permissions.py::UpdatePermissionsTests::test_works
  /usr/lib/python3.12/site-packages/django/db/models/base.py:366: RuntimeWarning: Model 'testapp.testmodel' was already registered. Reloading models is not advised as it can lead to inconsistencies, most notably with related models.
    new_class._meta.apps.register_model(new_class._meta.app_label, new_class)

tests/management/commands/test_generate_password.py::test_without_args
  /builddir/build/BUILD/django-extensions-3.2.3/django_extensions/management/commands/generate_password.py:30: RemovedInDjango51Warning: BaseUserManager.make_random_password() is deprecated.
    return manager.make_random_password()

tests/management/commands/test_generate_password.py::test_with_length_args
  /builddir/build/BUILD/django-extensions-3.2.3/django_extensions/management/commands/generate_password.py:28: RemovedInDjango51Warning: BaseUserManager.make_random_password() is deprecated.
    return manager.make_random_password(length)

tests/management/commands/test_print_settings.py::test_without_args
tests/management/commands/test_print_settings.py::test_with_setting_args
tests/management/commands/test_print_settings.py::test_with_setting_wildcard
tests/management/commands/test_print_settings.py::test_with_setting_fail
tests/management/commands/test_print_settings.py::test_with_multiple_setting_args
tests/management/commands/test_print_settings.py::test_format
tests/management/commands/test_print_settings.py::test_format_json_without_indent
  /usr/lib/python3.12/site-packages/django/conf/__init__.py:193: RemovedInDjango51Warning: The DEFAULT_FILE_STORAGE setting is deprecated. Use STORAGES instead.
    self._show_deprecation_warning(

tests/management/commands/test_print_settings.py::test_without_args
tests/management/commands/test_print_settings.py::test_with_setting_args
tests/management/commands/test_print_settings.py::test_with_setting_wildcard
tests/management/commands/test_print_settings.py::test_with_setting_fail
tests/management/commands/test_print_settings.py::test_with_multiple_setting_args
tests/management/commands/test_print_settings.py::test_format
tests/management/commands/test_print_settings.py::test_format_json_without_indent
  /usr/lib/python3.12/site-packages/django/conf/__init__.py:201: RemovedInDjango51Warning: The STATICFILES_STORAGE setting is deprecated. Use STORAGES instead.
    self._show_deprecation_warning(

tests/management/commands/test_print_settings.py::test_without_args
tests/management/commands/test_print_settings.py::test_with_setting_args
tests/management/commands/test_print_settings.py::test_with_setting_wildcard
tests/management/commands/test_print_settings.py::test_with_setting_fail
tests/management/commands/test_print_settings.py::test_with_multiple_setting_args
tests/management/commands/test_print_settings.py::test_format
tests/management/commands/test_print_settings.py::test_format_json_without_indent
  /usr/lib/python3.12/site-packages/django/conf/__init__.py:178: RemovedInDjango50Warning: The USE_L10N setting is deprecated. Starting with Django 5.0, localized formatting of data will always be enabled. For example Django will display numbers and dates using the format of the current locale.
    self._show_deprecation_warning(

=========================== short test summary info ============================
FAILED tests/test_dumpscript.py::DumpScriptTests::test_replaced_stderr - djan...
FAILED tests/test_dumpscript.py::DumpScriptTests::test_replaced_stdout - djan...
FAILED tests/test_dumpscript.py::DumpScriptTests::test_runs - django.db.utils...
FAILED tests/test_dumpscript.py::DumpScriptTests::test_valid_syntax - django....
FAILED tests/test_dumpscript.py::DumpScriptTests::test_with_datetimefield - d...
= 5 failed, 456 passed, 4 skipped, 7 deselected, 4 xfailed, 6 xpassed, 89 warnings in 32.96s =

https://docs.pytest.org/en/stable/changelog.html

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/thrnciar/pytest/fedora-rawhide-x86_64/07247995-python-django-extensions/

For all our attempts to build python-django-extensions with pytest 8, see:
https://copr.fedorainfracloud.org/coprs/thrnciar/pytest/package/python-django-extensions/

Let us know here if you have any questions.

Pytest 8 is planned to be included in Fedora 41. And this bugzilla is a
heads up before we merge new pytest into rawhide. For more info see a Fedora Change
proposal https://fedoraproject.org/wiki/Changes/Pytest_8

We'd appreciate help from the people who know this package best,
but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 1 Miro Hrončok 2025-01-31 16:53:48 UTC
Based on my queries, this is the last package in Fedora that needs pytest 7.

Comment 3 Fedora Update System 2025-01-31 18:20:43 UTC
FEDORA-2025-59e2868c19 (python-django-extensions-3.2.3-9.fc42) has been submitted as an update to Fedora 42.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-59e2868c19

Comment 4 Fedora Update System 2025-01-31 19:46:56 UTC
FEDORA-2025-59e2868c19 (python-django-extensions-3.2.3-9.fc42) has been pushed to the Fedora 42 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.