Skip to content

[bug] Tests do not pass #780

@raxod502

Description

@raxod502

Describe the bug
I'm packaging Objection for Arch Linux. In attempting to add check() support to my PKGBUILD, I have found that Objection's unit tests do not appear to be passing.

To Reproduce

  1. python -m unittest
  2. FAILED (failures=16, errors=14)

Similar issues
None found

Expected behavior
I would expect the tests to pass in a source distribution

Evidence / Logs / Screenshots

Test output
% python -m unittest                                       
......................Started implicit intent analysis
......FF...........FFFFF................F.......FF......F..............................EEEEEE......FFF...............EEE.E....F........F..........EE..................................E.E.....................................
======================================================================
ERROR: test_downloads_file_but_fails_on_file_type_with_android_helper (tests.commands.test_filemanager.TestFileManager.test_downloads_file_but_fails_on_file_type_with_android_helper)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_filemanager.py", line 483, in test_downloads_file_but_fails_on_file_type_with_android_helper
    with capture(_download_android, '/foo', '/bar') as o:
         ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/contextlib.py", line 141, in __enter__
    return next(self.gen)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/helpers.py", line 13, in capture
    command(*args, **kwargs)
    ~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: _download_android() missing 1 required positional argument: 'should_download_folder'

======================================================================
ERROR: test_downloads_file_but_fails_on_file_type_with_ios_helper (tests.commands.test_filemanager.TestFileManager.test_downloads_file_but_fails_on_file_type_with_ios_helper)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_filemanager.py", line 436, in test_downloads_file_but_fails_on_file_type_with_ios_helper
    with capture(_download_ios, '/foo', '/bar') as o:
         ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/contextlib.py", line 141, in __enter__
    return next(self.gen)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/helpers.py", line 13, in capture
    command(*args, **kwargs)
    ~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: _download_ios() missing 1 required positional argument: 'should_download_folder'

======================================================================
ERROR: test_downloads_file_but_fails_on_unreadable_with_android_helper (tests.commands.test_filemanager.TestFileManager.test_downloads_file_but_fails_on_unreadable_with_android_helper)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_filemanager.py", line 469, in test_downloads_file_but_fails_on_unreadable_with_android_helper
    with capture(_download_android, '/foo', '/bar') as o:
         ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/contextlib.py", line 141, in __enter__
    return next(self.gen)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/helpers.py", line 13, in capture
    command(*args, **kwargs)
    ~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: _download_android() missing 1 required positional argument: 'should_download_folder'

======================================================================
ERROR: test_downloads_file_but_fails_on_unreadable_with_ios_helper (tests.commands.test_filemanager.TestFileManager.test_downloads_file_but_fails_on_unreadable_with_ios_helper)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_filemanager.py", line 426, in test_downloads_file_but_fails_on_unreadable_with_ios_helper
    with capture(_download_ios, '/foo', '/bar') as o:
         ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/contextlib.py", line 141, in __enter__
    return next(self.gen)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/helpers.py", line 13, in capture
    command(*args, **kwargs)
    ~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: _download_ios() missing 1 required positional argument: 'should_download_folder'

======================================================================
ERROR: test_downloads_file_with_android_helper (tests.commands.test_filemanager.TestFileManager.test_downloads_file_with_android_helper)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_filemanager.py", line 450, in test_downloads_file_with_android_helper
    with capture(_download_android, '/foo', '/bar') as o:
         ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/contextlib.py", line 141, in __enter__
    return next(self.gen)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/helpers.py", line 13, in capture
    command(*args, **kwargs)
    ~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: _download_android() missing 1 required positional argument: 'should_download_folder'

======================================================================
ERROR: test_downloads_file_with_ios_helper (tests.commands.test_filemanager.TestFileManager.test_downloads_file_with_ios_helper)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_filemanager.py", line 410, in test_downloads_file_with_ios_helper
    with capture(_download_ios, '/foo', '/bar') as o:
         ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/contextlib.py", line 141, in __enter__
    return next(self.gen)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/helpers.py", line 13, in capture
    command(*args, **kwargs)
    ~~~~~~~^^^^^^^^^^^^^^^^^
TypeError: _download_ios() missing 1 required positional argument: 'should_download_folder'

======================================================================
ERROR: test_cant_find_job_by_uuid (tests.commands.test_jobs.TestJobs.test_cant_find_job_by_uuid)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_jobs.py", line 66, in test_cant_find_job_by_uuid
    kill('foo')
    ~~~~^^^^^^^
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/objection/commands/jobs.py", line 50, in kill
    job_uuid = int(args[0])
ValueError: invalid literal for int() with base 10: 'f'

======================================================================
ERROR: test_displays_empty_jobs_message (tests.commands.test_jobs.TestJobs.test_displays_empty_jobs_message)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_jobs.py", line 34, in test_displays_empty_jobs_message
    with capture(show) as o:
         ~~~~~~~^^^^^^
  File "/usr/lib/python3.13/contextlib.py", line 141, in __enter__
    return next(self.gen)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/helpers.py", line 13, in capture
    command(*args, **kwargs)
    ~~~~~~~^^^^^^^^^^^^^^^^^
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/objection/commands/jobs.py", line 34, in show
    ] for uuid, job in jobs.items()], headers=['Job ID', 'Type', 'Name'],
                       ^^^^^^^^^^
AttributeError: 'list' object has no attribute 'items'

======================================================================
ERROR: test_displays_list_of_jobs (tests.commands.test_jobs.TestJobs.test_displays_list_of_jobs)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_jobs.py", line 48, in test_displays_list_of_jobs
    with capture(show, []) as o:
         ~~~~~~~^^^^^^^^^^
  File "/usr/lib/python3.13/contextlib.py", line 141, in __enter__
    return next(self.gen)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/helpers.py", line 13, in capture
    command(*args, **kwargs)
    ~~~~~~~^^^^^^^^^^^^^^^^^
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/objection/commands/jobs.py", line 34, in show
    ] for uuid, job in jobs.items()], headers=['Job ID', 'Type', 'Name'],
                       ^^^^^^^^^^
AttributeError: 'list' object has no attribute 'items'

======================================================================
ERROR: test_kills_job_by_uuid (tests.commands.test_jobs.TestJobs.test_kills_job_by_uuid)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_jobs.py", line 72, in test_kills_job_by_uuid
    kill('foo')
    ~~~~^^^^^^^
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/objection/commands/jobs.py", line 50, in kill
    job_uuid = int(args[0])
ValueError: invalid literal for int() with base 10: 'f'

======================================================================
ERROR: test_alert_helper_method_proxy_calls_ios (tests.commands.test_ui.TestUI.test_alert_helper_method_proxy_calls_ios)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_ui.py", line 20, in test_alert_helper_method_proxy_calls_ios
    self.assertTrue(mock_alert_ios.called_with('objection!'))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/unittest/mock.py", line 695, in __getattr__
    raise AttributeError(
        f"{name!r} is not a valid assertion. Use a spec "
        f"for the mock if {name!r} is meant to be an attribute.")
AttributeError: 'called_with' is not a valid assertion. Use a spec for the mock if 'called_with' is meant to be an attribute.

======================================================================
ERROR: test_alert_helper_method_proxy_calls_ios_custom_message (tests.commands.test_ui.TestUI.test_alert_helper_method_proxy_calls_ios_custom_message)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_ui.py", line 28, in test_alert_helper_method_proxy_calls_ios_custom_message
    self.assertTrue(mock_alert_ios.called_with('foo'))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/unittest/mock.py", line 695, in __getattr__
    raise AttributeError(
        f"{name!r} is not a valid assertion. Use a spec "
        f"for the mock if {name!r} is meant to be an attribute.")
AttributeError: 'called_with' is not a valid assertion. Use a spec for the mock if 'called_with' is meant to be an attribute.

======================================================================
ERROR: test_adds_jobs (tests.state.test_jobs.TestJobManager.test_adds_jobs)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/state/test_jobs.py", line 14, in test_adds_jobs
    job_manager_state.add_job('foo')
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/objection/state/jobs.py", line 72, in add_job
    if new_job.uuid not in self.jobs:
       ^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'uuid'

======================================================================
ERROR: test_removes_jobs (tests.state.test_jobs.TestJobManager.test_removes_jobs)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/state/test_jobs.py", line 19, in test_removes_jobs
    job_manager_state.add_job('foo')
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/objection/state/jobs.py", line 72, in add_job
    if new_job.uuid not in self.jobs:
       ^^^^^^^^^^^^
AttributeError: 'str' object has no attribute 'uuid'

======================================================================
FAIL: test_entries_handles (tests.commands.android.test_keystore.TestKeystore.test_entries_handles)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/android/test_keystore.py", line 38, in test_entries_handles
    self.assertEqual(output, expected_output)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'Alias  Key   Certificate\n-----  ----  ---------[19 chars]ue\n' != 'Alias    Key    Certificate\n-------  -----  ---[30 chars]ue\n'
- Alias  Key   Certificate
+ Alias    Key    Certificate
?        ++   +
- -----  ----  -----------
?            ^^
+ -------  -----  -------------
?      ++      ^^^^^
- test   True  True
+ test     True   True
?        ++    +


======================================================================
FAIL: test_entries_handles_empty_data (tests.commands.android.test_keystore.TestKeystore.test_entries_handles_empty_data)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/android/test_keystore.py", line 20, in test_entries_handles_empty_data
    self.assertEqual(output, expected_output)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'Alias  Key  Certificate\n-----  ---  -----------\n' != 'Alias    Key    Certificate\n-------  -----  -------------\n'
- Alias  Key  Certificate
+ Alias    Key    Certificate
?        ++   ++
- -----  ---  -----------
?           ^^
+ -------  -----  -------------
?      ++     ^^^^^^


======================================================================
FAIL: test_show_bundles_prints_bundles (tests.commands.ios.test_bundles.TestBundles.test_show_bundles_prints_bundles)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/ios/test_bundles.py", line 147, in test_show_bundles_prints_bundles
    self.assertEqual(output, expected)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
AssertionError: 'Exec[53 chars]     Version  Path\n------------------------  [521 chars]it\n' != 'Exec[53 chars]       Version  Path\n------------------------[533 chars]it\n'
Diff is 1684 characters long. Set self.maxDiff to None to see it.

======================================================================
FAIL: test_show_frameworks_prints_with_apple_bundles (tests.commands.ios.test_bundles.TestBundles.test_show_frameworks_prints_with_apple_bundles)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/ios/test_bundles.py", line 96, in test_show_frameworks_prints_with_apple_bundles
    self.assertEqual(output, expected)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
AssertionError: 'Exec[53 chars]     Version  Path\n------------------------  [463 chars]it\n' != 'Exec[53 chars]       Version  Path\n------------------------[475 chars]it\n'
Diff is 1568 characters long. Set self.maxDiff to None to see it.

======================================================================
FAIL: test_show_frameworks_prints_with_apple_bundles_and_full_paths (tests.commands.ios.test_bundles.TestBundles.test_show_frameworks_prints_with_apple_bundles_and_full_paths)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/ios/test_bundles.py", line 113, in test_show_frameworks_prints_with_apple_bundles_and_full_paths
    self.assertEqual(output, expected)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
AssertionError: 'Exec[53 chars]     Version  Path\n------------------------  [521 chars]it\n' != 'Exec[53 chars]       Version  Path\n------------------------[533 chars]it\n'
Diff is 1684 characters long. Set self.maxDiff to None to see it.

======================================================================
FAIL: test_show_frameworks_prints_without_apple_bundles (tests.commands.ios.test_bundles.TestBundles.test_show_frameworks_prints_without_apple_bundles)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/ios/test_bundles.py", line 79, in test_show_frameworks_prints_without_apple_bundles
    self.assertEqual(output, expected)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
AssertionError: 'Executable  Bundle                 Version  Path\n---[158 chars]it\n' != 'Executable    Bundle                   Version  Path\[174 chars]it\n'
- Executable  Bundle                 Version  Path
+ Executable    Bundle                   Version  Path
?             ++      ++
- ----------  ---------------------  -------  ----------
+ ------------  ---------------------  ---------  ----------
?           ++                                ++
- hockeyapp   net.hockeyapp.sdk.ios        1  /hockeyapp
+ hockeyapp     net.hockeyapp.sdk.ios          1  /hockeyapp
?          ++                                ++
- MapKit      za.apple.MapKit              1  /MapKit
+ MapKit        za.apple.MapKit                1  /MapKit
?       ++                                   ++


======================================================================
FAIL: test_get (tests.commands.ios.test_cookies.TestCookies.test_get)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/ios/test_cookies.py", line 38, in test_get
    self.assertEqual(output, expected_output)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'Name  Value  Expires                    Domain [164 chars]ue\n' != 'Name    Value    Expires                    Dom[193 chars]ue\n'
Diff is 747 characters long. Set self.maxDiff to None to see it.

======================================================================
FAIL: test_adds_item_validates_data_key_to_need_identifier (tests.commands.ios.test_keychain.TestKeychain.test_adds_item_validates_data_key_to_need_identifier)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/ios/test_keychain.py", line 144, in test_adds_item_validates_data_key_to_need_identifier
    self.assertEqual(output, 'When specifying the --data flag, either --account or --server should also be added\n')
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'When[19 chars]ata flag, either --account or --service should also be added\n' != 'When[19 chars]ata flag, either --account or --server should also be added\n'
- When specifying the --data flag, either --account or --service should also be added
?                                                            --
+ When specifying the --data flag, either --account or --server should also be added
?                                                             +


======================================================================
FAIL: test_dump_to_screen (tests.commands.ios.test_keychain.TestKeychain.test_dump_to_screen)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/ios/test_keychain.py", line 94, in test_dump_to_screen
    self.assertEqual(output, expected_output)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'Note[173 chars]ted  Accessible  ACL   Type  Account  Service [116 chars]ar\n' != 'Note[173 chars]ted    Accessible    ACL    Type    Account   [151 chars]ar\n'
Diff is 803 characters long. Set self.maxDiff to None to see it.

======================================================================
FAIL: test_dump_to_screen_handles_empty_data (tests.commands.ios.test_keychain.TestKeychain.test_dump_to_screen_handles_empty_data)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/ios/test_keychain.py", line 74, in test_dump_to_screen_handles_empty_data
    self.assertEqual(output, expected_output)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'Note[173 chars]ted  Accessible  ACL  Type  Account  Service  [58 chars]--\n' != 'Note[173 chars]ted    Accessible    ACL    Type    Account   [84 chars]--\n'
  Note: You may be asked to authenticate using the devices passcode or TouchID
  Save the output by adding `--json keychain.json` to this command
  Dumping the iOS keychain...
- Created  Accessible  ACL  Type  Account  Service  Data
+ Created    Accessible    ACL    Type    Account    Service    Data
?        ++              ++   ++      ++           ++         ++
- -------  ----------  ---  ----  -------  -------  ----
?                    --  -                        ^^
+ ---------  ------------  -----  ------  ---------  ---------  ------
?        ++                    +++++++++         ++         ^^^^^^


======================================================================
FAIL: test_dump (tests.commands.ios.test_nsurlcredentialstorage.TestNsusercredentialstorage.test_dump)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/ios/test_nsurlcredentialstorage.py", line 28, in test_dump
    self.assertEqual(output, expected_output)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'Protocol  Host     Port  Authentication Method  Use[132 chars]ar\n' != 'Protocol    Host       Port  Authentication Method [158 chars]ar\n'
Diff is 656 characters long. Set self.maxDiff to None to see it.

======================================================================
FAIL: test_lists_readable_android_directory_using_helper_method (tests.commands.test_filemanager.TestFileManager.test_lists_readable_android_directory_using_helper_method)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_filemanager.py", line 363, in test_lists_readable_android_directory_using_helper_method
    self.assertEqual(output, expected_outut)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'Type  Last Modified            Read  Write  Hid[184 chars]ue\n' != 'Type    Last Modified            Read    Write [210 chars]ue\n'
- Type  Last Modified            Read  Write  Hidden  Size     Name
+ Type    Last Modified            Read    Write    Hidden    Size     Name
?       ++                             ++       ++          ++
- ----  -----------------------  ----  -----  ------  -------  ----
+ ------  -----------------------  ------  -------  --------  -------  ------
- File  2017-10-05 07:36:41 GMT  True  True   False   249.0 B  test
+ File    2017-10-05 07:36:41 GMT  True    True     False     249.0 B  test
?     ++                                 ++    ++           ++
  
  Readable: True  Writable: True


======================================================================
FAIL: test_lists_readable_ios_directory_using_helper_method (tests.commands.test_filemanager.TestFileManager.test_lists_readable_ios_directory_using_helper_method)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_filemanager.py", line 287, in test_lists_readable_ios_directory_using_helper_method
    self.assertEqual(output, expected_outut)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'NSFileType  Perms  NSFileProtection  Read  Write  Own[251 chars]se\n' != 'NSFileType    Perms    NSFileProtection    Read    Wr[301 chars]se\n'
Diff is 1033 characters long. Set self.maxDiff to None to see it.

======================================================================
FAIL: test_lists_readable_ios_directory_using_helper_method_no_attributes (tests.commands.test_filemanager.TestFileManager.test_lists_readable_ios_directory_using_helper_method_no_attributes)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_filemanager.py", line 315, in test_lists_readable_ios_directory_using_helper_method_no_attributes
    self.assertEqual(output, expected_outut)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'NSFileType  Perms  NSFileProtection  Read  Write  Own[259 chars]ue\n' != 'NSFileType    Perms    NSFileProtection    Read    Wr[303 chars]ue\n'
Diff is 1052 characters long. Set self.maxDiff to None to see it.

======================================================================
FAIL: test_dump_exports_without_error (tests.commands.test_memory.TestMemory.test_dump_exports_without_error)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_memory.py", line 147, in test_dump_exports_without_error
    self.assertEqual(output, expected_outut)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'Save[72 chars]ame  Address\n--------  ----  -------\nfunctio[14 chars]68\n' != 'Save[72 chars]ame      Address\n--------  ------  ---------\[26 chars]68\n'
  Save the output by adding `--json exports.json` to this command
- Type      Name  Address
+ Type      Name      Address
?               ++++
- --------  ----  -------
?               ^^
+ --------  ------  ---------
?               ^^^^^^
- function  test    32768
+ function  test        32768
?               ++++


======================================================================
FAIL: test_list_modules_without_errors_without_json_flag (tests.commands.test_memory.TestMemory.test_list_modules_without_errors_without_json_flag)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.13/unittest/mock.py", line 1426, in patched
    return func(*newargs, **newkeywargs)
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/tests/commands/test_memory.py", line 92, in test_list_modules_without_errors_without_json_flag
    self.assertEqual(output, expected_outut)
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 'Save[63 chars]me   Base  Size           Path\n----  -----  -[50 chars]oo\n' != 'Save[63 chars]me      Base  Size           Path\n------  ---[61 chars]oo\n'
  Save the output by adding `--json modules.json` to this command
- Name   Base  Size           Path
+ Name      Base  Size           Path
?        +++
- ----  -----  -------------  ----
? ------
+ ------  ------  -------------  ------
?      +++++++++                 ++
- test  32768  200 (200.0 B)  /foo
+ test     32768  200 (200.0 B)  /foo
?     +++


----------------------------------------------------------------------
Ran 244 tests in 0.258s

FAILED (failures=16, errors=14)
Exception ignored in atexit callback <bound method JobManagerState.cleanup of <objection.state.jobs.JobManagerState object at 0x7faf825217f0>>:
Traceback (most recent call last):
  File "/home/raxod502/.cache/aurutils/sync/objection/src/objection-1.12.2/objection/state/jobs.py", line 99, in cleanup
    for uuid in list(self.jobs.keys()):
AttributeError: 'list' object has no attribute 'keys'

Environment (please complete the following information):

  • Device: n/a
  • OS: Arch Linux
  • Frida Version: 17.5.2
  • Objection Version: 1.12.2

Application
n/a

Additional context
I noticed that tests have not been running in CI since 2021, due to 74f0e79.

Metadata

Metadata

Assignees

No one assigned

    Labels

    freshissueDefault label for new, untriaged issues.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions