AttributeError: unknown property link in results submission view (HyperTextView)

Bug #857373 reported by Brendan Donegan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Checkbox
Won't Fix
Critical
Unassigned

Bug Description

When running Checkbox from trunk (or indeed the PPA version from checkbox-dev's PPA) the results submission view is skipped and the following traceback can be seen in the terminal window that checkbox-gtk was run from:

Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/checkbox_gtk/hyper_text_view.py", line 35, in do_get_property
    raise AttributeError, "unknown property %s" % prop.name
AttributeError: unknown property link

I'm not an expert in Gtk, but a little bit of debugging shows that the __init__ function of the HyperTextView class is never getting hit and my feeling is that this is where the 'link' property would get created. I can't yet figure out why the __init__ function isn't getting hit.

Daniel Manrique (roadmr)
Changed in checkbox:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Daniel Manrique (roadmr) wrote :

Confirming the bug. It was *not* happening on an Oneiric system with all updates as of 2011-09-19, but *does* happen when the system is updated with available updates as of 2011-09-23. So perhaps some package update broke this functionality.

Steps to reproduce:

- Start checkbox (tested on latest trunk)
- On the test selection list, deselect all tests and select just a quick one (i.e. graphics/resolution).
- Run the tests

Expected result:
- A message indicating testing was completed, with a link to view the report

Actual result:
- Jumps straight to the "successfully finished testing" screen
- Trace as shown in the original report.

Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

Without this being fixed, there is no results submission screen and therefore no Ubuntu friendly results. Definitely Critical.

Changed in checkbox:
importance: High → Critical
Changed in checkbox:
milestone: none → 0.12.8
status: Confirmed → Triaged
assignee: nobody → Brendan Donegan (brendan-donegan)
status: Triaged → In Progress
Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

I located a less up-to-date system and find that inded, HyperTextView.__init__ is getting called when checkbox is started, which for some reason is not happening in the up-to-date version.

Revision history for this message
Daniel Manrique (roadmr) wrote :

I isolated the troublesome components and code to have a cleaner basis for experimentation.

I was able to verify (triple-verify?) that __init__ doesn't get called and that causes the failure, However this happens ONLY if the user interface is built using Glade; if I instantiate and build everything in code, the HyperText widget works fine, and its init method gets called.

I also managed to find a workaround, namely, to explicitly call the __init__ method for each HyperTextView object. When I do this, even on Checkbox, things work OK. It may be a last-ditch option to get things working in time.

I pushed my experimental code to a public branch, feel free to use to experiment, as it may be a bit quicker than going around modifying and running Checkbox to try to reproduce:

lp:~roadmr/+junk/glade-widget-init

This includes hyper_text_view.py with a small modification to print to console when __init__ gets called, as well as the required xml catalog for use with glade. It also includes a minimal test.ui built with Glade, and finally two Python scripts, test-glade.py and test-standalone.py. The first will fail on fully-updated Oneiric systems and work on slightly outdated systems. The second always works.

Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

I can also confirm that using the older installation I have here that the test-glade.py script works just as well as the test-standalone.py one. I'll investigate here to see if I can find out more.

Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

The key line is this one:

self.widgets.add_from_file("test.ui")

That's where HyperTextView.__init__ winds up getting called in the older installation. In the up-to-date installation it doesn't get called here (or anywhere)

Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

According to pitti, the fix for this should take care of our problem:

https://launchpad.net/bugs/856669

We'll just leave this bug open until the fix for that is released and we can confirm it definitely takes care of this.

Revision history for this message
Brendan Donegan (brendan-donegan) wrote :

Actually, looking at other bugs linked to that one it seems to be most peoples opinion that these count as duplicates, so marking as such.

Changed in checkbox:
assignee: Brendan Donegan (brendan-donegan) → nobody
Changed in checkbox:
status: In Progress → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.