Skip to content

Idle: test SearchDialogBase.py #62792

Closed
Closed

Description

@philwebster
BPO 18592
Nosy @terryjreedy, @ezio-melotti, @rovitotv, @serhiy-storchaka
Files
  • test_searchdialogbase.patch
  • test_searchdialogbase2.patch
  • 18592_test_searchdialog.diff
  • 18592_test_searchdialog2.diff
  • test-search-sdb-18592-34.diff
  • grepdialog_bug.diff
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields:

    assignee = 'https://github.com/terryjreedy'
    closed_at = <Date 2014-07-01.03:54:03.829>
    created_at = <Date 2013-07-30.01:12:50.255>
    labels = ['expert-IDLE', 'type-feature']
    title = 'Idle:  test SearchDialogBase.py'
    updated_at = <Date 2014-07-13.21:28:26.118>
    user = 'https://bugs.python.org/philwebster'

    bugs.python.org fields:

    activity = <Date 2014-07-13.21:28:26.118>
    actor = 'python-dev'
    assignee = 'terry.reedy'
    closed = True
    closed_date = <Date 2014-07-01.03:54:03.829>
    closer = 'terry.reedy'
    components = ['IDLE']
    creation = <Date 2013-07-30.01:12:50.255>
    creator = 'philwebster'
    dependencies = []
    files = ['31082', '31220', '31364', '31542', '35784', '35937']
    hgrepos = []
    issue_num = 18592
    keywords = ['patch']
    message_count = 21.0
    messages = ['193911', '194838', '195581', '195582', '195591', '195712', '196699', '221592', '221593', '221598', '221997', '222006', '222464', '222484', '222485', '222488', '222513', '222544', '222723', '222914', '222976']
    nosy_count = 8.0
    nosy_names = ['terry.reedy', 'ezio.melotti', 'Todd.Rovito', 'python-dev', 'serhiy.storchaka', 'JayKrish', 'philwebster', 'Saimadhav.Heblikar']
    pr_nums = []
    priority = 'normal'
    resolution = 'fixed'
    stage = 'resolved'
    status = 'closed'
    superseder = None
    type = 'enhancement'
    url = 'https://bugs.python.org/issue18592'
    versions = ['Python 2.7', 'Python 3.4', 'Python 3.5']

    Activity

    1. philwebster commented on Jul 30, 2013

      philwebstermannequin
      MannequinAuthor

      This is a basic set of tests for SearchDialogBase. It mainly consists of gui code, so I was not completely sure of how/what to test. Before venturing any further, I thought I would make sure I'm heading in the right direction.

    2. philwebster commented on Aug 10, 2013

      philwebstermannequin
      MannequinAuthor

      As suggested by Ezio, I factored out the button tests to a common method.

    3. python-dev commented on Aug 18, 2013

      python-devmannequin
      Mannequin

      New changeset 0d2b87ec9f2b by Terry Jan Reedy in branch '2.7':
      Issue bpo-18592: Add docstrings to file being tested (idlelib.SearchDialogBase.py).
      http://hg.python.org/cpython/rev/0d2b87ec9f2b

      New changeset e09dfdbeb9a2 by Terry Jan Reedy in branch '3.3':
      Issue bpo-18592: Add docstrings to file being tested (idlelib.SearchDialogBase.py).
      http://hg.python.org/cpython/rev/e09dfdbeb9a2

      New changeset 358a2b2fbad4 by Terry Jan Reedy in branch '3.3':
      Issue bpo-18592: whitespace
      http://hg.python.org/cpython/rev/358a2b2fbad4

      New changeset 1f2b78941c4a by Terry Jan Reedy in branch '2.7':
      Issue bpo-18592: whitespace
      http://hg.python.org/cpython/rev/1f2b78941c4a

    4. terryjreedy commented on Aug 18, 2013

      @terryjreedy
      Member

      I added the docstrings that I wish had already been present.
      The only 2.7-3.3 difference in SearchDialogBase is Tkinter/tkinter.

    5. self-assigned this
      on Aug 18, 2013
    6. terryjreedy commented on Aug 19, 2013

      @terryjreedy
      Member

      A subtle point about coverage. The target module must be imported.
      from idlelib import SearchDialogBase as sdb # works.
      import idlelib.SearchDialogBase as sdb # does not
      at least not as I invoke coveragepy in my batch file.

      With this change, the four uncovered lines were "btn.select()" after
      if self.engine.is/re/case/word/back/():
      in create_option_buttons and create_other_buttons. I added a parameter to checkboxtests and a new method test_create_option_buttons_flipped. That leaves the line after isback() and I think the radiobutton test probably covers that anyway.

      The attached file has a few other cosmetic changes, like 'self.searchengine' to 'self.engine'.

      I would like to remove the duplicate testing in test_create_widgets. All we care for that test is that create_widgets calls the other four create methods. This could be done either by mocking the other methods (unittest.mock or custom replacement) or by looking to see that there is one entry, option button, other button, and command button.

      Were you planning to do the check-label todos?

    7. terryjreedy commented on Aug 20, 2013

      @terryjreedy
      Member

      For next edit -- docstring for class SearchDialogBase:

      +    a row of standard radiobuttons (create_option_buttons);
      

      This is wrong -- these are Checkbuttons

      +    a row of dialog specific radiobuttons (create_other_buttons).
      

      dialog-specific Radiobuttons

    8. philwebster commented on Sep 1, 2013

      philwebstermannequin
      MannequinAuthor

      Added tests for labels, a mock function for widget creation, a back option for radiobuttontests, and the docstring fixes that Terry mentioned.

    9. changed the title [-]IDLE: Unit test for SearchDialogBase.py[/-] [+]Idle: test SearchDialogBase.py[/+] on Jun 1, 2014
    10. python-dev commented on Jun 26, 2014

      python-devmannequin
      Mannequin

      New changeset 752439a6bdd9 by Terry Jan Reedy in branch '2.7':
      Issue bpo-18592: For idlelib.SearchDialogBase, edit and add docstrings,
      http://hg.python.org/cpython/rev/752439a6bdd9

      New changeset ed60a73e1c82 by Terry Jan Reedy in branch '3.4':
      Issue bpo-18592: For idlelib.SearchDialogBase, edit and add docstrings,
      http://hg.python.org/cpython/rev/ed60a73e1c82

    11. terryjreedy commented on Jun 26, 2014

      @terryjreedy
      Member

      I am getting the ttk Themechanges warning. The test needs to use an search engine altered as with test_searchengine. I will work on that next.

    12. terryjreedy commented on Jun 26, 2014

      @terryjreedy
      Member

      The warning was due to absence of def self.root. Attached is close to what will commit.

    13. python-dev commented on Jul 1, 2014

      python-devmannequin
      Mannequin

      New changeset 2b7a4cbed2a0 by Terry Jan Reedy in branch '2.7':
      Issue bpo-18592: Add unittests for SearchDialogBase. Patch by Phil Webster.
      http://hg.python.org/cpython/rev/2b7a4cbed2a0

      New changeset a0e8f2d882a3 by Terry Jan Reedy in branch '3.4':
      Issue bpo-18592: Add unittests for SearchDialogBase. Patch by Phil Webster.
      http://hg.python.org/cpython/rev/a0e8f2d882a3

    14. python-dev commented on Jul 1, 2014

      python-devmannequin
      Mannequin

      New changeset a7f943a13f7f by Terry Jan Reedy in branch '2.7':
      Issue bpo-18592: Refactor 2 SearchDialogBase.create_(option/other)_buttons methods
      http://hg.python.org/cpython/rev/a7f943a13f7f

      New changeset 86c26ff25207 by Terry Jan Reedy in branch '3.4':
      Issue bpo-18592: Refactor 2 SearchDialogBase.create_(option/other)_buttons methods
      http://hg.python.org/cpython/rev/86c26ff25207

    15. SaimadhavHeblikar commented on Jul 7, 2014

      SaimadhavHeblikarmannequin
      Mannequin

      Hi,
      test_make_entry seems to be failing (for eg: http://buildbot.python.org/all/builders/AMD64%20Debian%20root%203.4/builds/306/steps/test/logs/stdio and http://buildbot.python.org/all/builders/AMD64%20Debian%20root%203.x/builds/911/steps/test/logs/stdio)

      ======================================================================
      FAIL: test_make_entry (idlelib.idle_test.test_searchdialogbase.SearchDialogBaseTest)
      ----------------------------------------------------------------------

      Traceback (most recent call last):
        File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/idlelib/idle_test/test_searchdialogbase.py", line 83, in test_make_entry
          equal(egi['row'], 0)
      AssertionError: '0' != 0

      Ran 128 tests in 0.779s

      FAILED (failures=1)
      test test_idle failed

      Attach patch fixes it in a straight forward way.

    16. terryjreedy commented on Jul 7, 2014

      @terryjreedy
      Member

      Serhiy: we are having a problem with tkinter sometimes reporting boolean vars as '0' and '1' versus 0 and 1. As I remember, you pushed a patch about this in the last year, probably before 3.4 came out, but after last August. Am I correct? If so, do you remember the issue?

      Saimadhav: changing expected values *back* to '0'/'1', as in Phil's original patch, will make the test fail on all the systems (including all stable buildbots) that *do* return 0/1. After Serhiy's fix, I had to switch to 0/1 for 3.4/5 to make the tests pass again, after the change made them fail. Notice that the 2.7 version, pushed on 6/30 also, still has '0', '1'.

      The interesting question is why the Debian 3.4 system is different? Why is it acting like 2.7? Serhiy, do you have any idea?

      I am also puzzled why the corresponding text_tcl or _tk did not fail, as I presume there is a text for the change.

    17. SaimadhavHeblikar commented on Jul 7, 2014

      SaimadhavHeblikarmannequin
      Mannequin

      The interesting question is why the Debian 3.4 system is different?
      That is what caused me to notice the issue. I ran the IDLE test suite on my pc(debian 7) and it failed, while most buildbots were "green".

      Why is it acting like 2.7? Serhiy, do you have any idea?
      2.7 with '0'/'1' is passing.

      (I am removing the patch as this issue has a background that I was not aware of.)

    18. terryjreedy commented on Jul 7, 2014

      @terryjreedy
      Member

      What micro tk version? as in

      >>> t = tk.Tk()
      >>> t.tk.call('info', 'patchlevel')
      '8.5.15'
    19. serhiy-storchaka commented on Jul 7, 2014

      @serhiy-storchaka
      Member

      I pushed a patch which fixed Text.debug(). This is not related to this issue.

      grid_info() values are depend on Tcl/Tk version. When < 8.6 strings are always returned (except the 'in' key which is special case), when >= 8.6 values can be integers or even tuples. I introduced the AbstractWidgetTest._str() method to convert expected value in widget tests.

      In these tests you can just write equal(int(egi['row']), 0).

    20. terryjreedy commented on Jul 8, 2014

      @terryjreedy
      Member

      Ah, Debian must not be using 8.6. Thanks for both the clarification and how to fix.

    21. python-dev commented on Jul 11, 2014

      python-devmannequin
      Mannequin

      New changeset 30a75f75a4d4 by Terry Jan Reedy in branch '2.7':
      Issue bpo-18592: Make unittest for SearchDialogBase work on all tk versions.
      http://hg.python.org/cpython/rev/30a75f75a4d4

      New changeset 91546aa91cee by Terry Jan Reedy in branch '3.4':
      Issue bpo-18592: Make unittest for SearchDialogBase work on all tk versions.
      http://hg.python.org/cpython/rev/91546aa91cee

    22. SaimadhavHeblikar commented on Jul 13, 2014

      SaimadhavHeblikarmannequin
      Mannequin

      A bug introduced by 91491:a0e8f2d882a3.

      Opening Find-in-files gives the following error

      Exception in Tkinter callback
      Traceback (most recent call last):
        File "/home/saimadhav/dev/34-cpython/Lib/tkinter/__init__.py", line 1487, in __call__
      .
      .
      <SNIPPED>
      .
      .
          self.tk = master.tk
      AttributeError: 'tuple' object has no attribute 'tk'
    23. python-dev commented on Jul 13, 2014

      python-devmannequin
      Mannequin

      New changeset b6c5719e0f4e by Terry Jan Reedy in branch '2.7':
      Issue bpo-18592: Method return signature changes made to SearchDialogBase for
      http://hg.python.org/cpython/rev/b6c5719e0f4e

      New changeset 407110796b16 by Terry Jan Reedy in branch '3.4':
      Issue bpo-18592: Method return signature changes made to SearchDialogBase for
      http://hg.python.org/cpython/rev/407110796b16

    24. transferred this issue fromon Apr 10, 2022
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

    Metadata

    Metadata

    Assignees

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions