Extension classes with multiple base classes aren't merged correctly.

Bug #1425721 reported by Christopher Lee
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Autopilot
Fix Released
High
Unassigned
autopilot (Ubuntu)
Fix Released
Undecided
Unassigned
Vivid
Fix Released
Undecided
Unassigned

Bug Description

Related to this bug: lp:1376996 where the fix for that introduced other issues for existing application test cases this code needs to be fixed so this aforementioned bug is fixed completely.

The actual bug is that the extension classes aren't applied in the call to `_try_custom_proxy_classes`, the initial fix (now reverted) attempted this but this introduced unforeseen errors when running all the application tests. A further quick fix was attempted (effectively:
  base + tuple(set(extensions).difference(base))
)
But this introduced other errors and at that point the quick fix was no longer quick.

[Impact]

 * It is possible that a test authors tests fail intermittently due to the base classes of a cpo not being resolved correctly and thus added methods etc. are not available (resulting in an attribute failure).

 * justification: Ensures that test author tests for applications have a decreased likelihood of failing

 * This fix improves the handling of the what is expected when using a custom proxy object and is stricter in what it allows.

[Test Case]

 * To reproduce this bug:
    - Install the current python3-autopilot (apt-get install python3-autopilot python-windowmocker)
    - run this test (using the following command):
      $ python3 -m autopilot.run run autopilot.tests.functional.test_introspection_features.IntrospectionFeatureTests.test_customised_proxy_classes_have_extension_classes

[Regression Potential]

 * Changes to the existing core app autopilot tests have been landed, otherwise there would be a potential regression where tests start failing with an exception [1].

[1] ValueError with the message starting: "base_class: {passed} does not appear to be the actual base CPO class."

 * This change has been tested against the existing core app tests (Using a jenkins job similar to the smokeeng dash board) where all the tests are run. The results are inspected.

description: updated
Revision history for this message
Christopher Lee (veebers) wrote :

[Impact]

 * It is possible that a test authors tests fail intermittently due to the base classes of a cpo not being resolved correctly and thus added methods etc. are not available (resulting in an attribute failure).

 * justification: Ensures that test author tests for applications have a decreased likelihood of failing

 * This fix improves the handling of the what is expected when using a custom proxy object and is stricter in what it allows.

[Test Case]

 * To reproduce this bug:
    - Install the current python3-autopilot (apt-get install python3-autopilot python-windowmocker)
    - run this test (using the following command):
      $ python3 -m autopilot.run run autopilot.tests.functional.test_introspection_features.IntrospectionFeatureTests.test_customised_proxy_classes_have_extension_classes

[Regression Potential]

 * Changes to the existing core app autopilot tests have been landed, otherwise there would be a potential regression where tests start failing with an exception [1].

[1] ValueError with the message starting: "base_class: {passed} does not appear to be the actual base CPO class."

 * This change has been tested against the existing core app tests (Using a jenkins job similar to the smokeeng dash board) where all the tests are run. The results are inspected.

summary: - Handling of extension classes and bases classes needs revamped
+ Extension classes with multiple base classes aren't merged correctly.
Changed in autopilot:
status: Confirmed → Fix Released
description: updated
Revision history for this message
Steve Langasek (vorlon) wrote : Please test proposed package

Hello Christopher, or anyone else affected,

Accepted autopilot into vivid-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/autopilot/1.5.1+15.04.20150522-0ubuntu1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in autopilot (Ubuntu Vivid):
status: New → Fix Committed
tags: added: verification-needed
tags: added: verification-done
removed: verification-needed
Revision history for this message
Chris J Arges (arges) wrote : Update Released

The verification of the Stable Release Update for autopilot has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package autopilot - 1.5.1+15.04.20150522-0ubuntu1

---------------
autopilot (1.5.1+15.04.20150522-0ubuntu1) vivid; urgency=medium

  [ CI Train Bot ]
  * New rebuild forced.

  [ Christopher Lee, Federico Gimenez, Leo Arias, Richard Huddie, Vincent Ladeuil ]
  * Bug fixes for logging (debug level now -vv) and application of CPO
    bases for proxy objects. (LP: #1425721, #1376996, #1420949)

 -- CI Train Bot <email address hidden> Fri, 22 May 2015 16:54:03 +0000

Changed in autopilot (Ubuntu Vivid):
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package autopilot - 1.5.1+15.10.20150723-0ubuntu1

---------------
autopilot (1.5.1+15.10.20150723-0ubuntu1) wily; urgency=medium

  [ Christopher Lee ]
  * Bug fixes including updated dependencies.

  [ Ken VanDine ]
  * Bug fixes including updated dependencies.

 -- CI Train Bot <email address hidden> Thu, 23 Jul 2015 14:39:21 +0000

Changed in autopilot (Ubuntu):
status: New → Fix Released
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.