1 2<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 3<html><head><title>Python: module telemetry.page.page_test</title> 4<meta charset="utf-8"> 5</head><body bgcolor="#f0f0f8"> 6 7<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="heading"> 8<tr bgcolor="#7799ee"> 9<td valign=bottom> <br> 10<font color="#ffffff" face="helvetica, arial"> <br><big><big><strong><a href="telemetry.html"><font color="#ffffff">telemetry</font></a>.<a href="telemetry.page.html"><font color="#ffffff">page</font></a>.page_test</strong></big></big></font></td 11><td align=right valign=bottom 12><font color="#ffffff" face="helvetica, arial"><a href=".">index</a><br><a href="../telemetry/page/page_test.py">telemetry/page/page_test.py</a></font></td></tr></table> 13 <p><tt># Copyright 2012 The Chromium Authors. All rights reserved.<br> 14# Use of this source code is governed by a BSD-style license that can be<br> 15# found in the LICENSE file.</tt></p> 16<p> 17<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 18<tr bgcolor="#aa55cc"> 19<td colspan=3 valign=bottom> <br> 20<font color="#ffffff" face="helvetica, arial"><big><strong>Modules</strong></big></font></td></tr> 21 22<tr><td bgcolor="#aa55cc"><tt> </tt></td><td> </td> 23<td width="100%"><table width="100%" summary="list"><tr><td width="25%" valign=top><a href="telemetry.page.action_runner.html">telemetry.page.action_runner</a><br> 24</td><td width="25%" valign=top><a href="telemetry.core.exceptions.html">telemetry.core.exceptions</a><br> 25</td><td width="25%" valign=top><a href="logging.html">logging</a><br> 26</td><td width="25%" valign=top></td></tr></table></td></tr></table><p> 27<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 28<tr bgcolor="#ee77aa"> 29<td colspan=3 valign=bottom> <br> 30<font color="#ffffff" face="helvetica, arial"><big><strong>Classes</strong></big></font></td></tr> 31 32<tr><td bgcolor="#ee77aa"><tt> </tt></td><td> </td> 33<td width="100%"><dl> 34<dt><font face="helvetica, arial"><a href="__builtin__.html#object">__builtin__.object</a> 35</font></dt><dd> 36<dl> 37<dt><font face="helvetica, arial"><a href="telemetry.page.page_test.html#PageTest">PageTest</a> 38</font></dt></dl> 39</dd> 40<dt><font face="helvetica, arial"><a href="exceptions.html#Exception">exceptions.Exception</a>(<a href="exceptions.html#BaseException">exceptions.BaseException</a>) 41</font></dt><dd> 42<dl> 43<dt><font face="helvetica, arial"><a href="telemetry.page.page_test.html#MultiTabTestAppCrashError">MultiTabTestAppCrashError</a> 44</font></dt><dt><font face="helvetica, arial"><a href="telemetry.page.page_test.html#TestNotSupportedOnPlatformError">TestNotSupportedOnPlatformError</a> 45</font></dt></dl> 46</dd> 47<dt><font face="helvetica, arial"><a href="telemetry.web_perf.story_test.html#Failure">telemetry.web_perf.story_test.Failure</a>(<a href="exceptions.html#Exception">exceptions.Exception</a>) 48</font></dt><dd> 49<dl> 50<dt><font face="helvetica, arial"><a href="telemetry.page.page_test.html#MeasurementFailure">MeasurementFailure</a> 51</font></dt></dl> 52</dd> 53</dl> 54 <p> 55<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 56<tr bgcolor="#ffc8d8"> 57<td colspan=3 valign=bottom> <br> 58<font color="#000000" face="helvetica, arial"><a name="MeasurementFailure">class <strong>MeasurementFailure</strong></a>(<a href="telemetry.web_perf.story_test.html#Failure">telemetry.web_perf.story_test.Failure</a>)</font></td></tr> 59 60<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td> 61<td colspan=2><tt><a href="#PageTest">PageTest</a> <a href="exceptions.html#Exception">Exception</a> raised when an undesired but designed-for problem.<br> </tt></td></tr> 62<tr><td> </td> 63<td width="100%"><dl><dt>Method resolution order:</dt> 64<dd><a href="telemetry.page.page_test.html#MeasurementFailure">MeasurementFailure</a></dd> 65<dd><a href="telemetry.web_perf.story_test.html#Failure">telemetry.web_perf.story_test.Failure</a></dd> 66<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd> 67<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd> 68<dd><a href="__builtin__.html#object">__builtin__.object</a></dd> 69</dl> 70<hr> 71Data descriptors inherited from <a href="telemetry.web_perf.story_test.html#Failure">telemetry.web_perf.story_test.Failure</a>:<br> 72<dl><dt><strong>__weakref__</strong></dt> 73<dd><tt>list of weak references to the object (if defined)</tt></dd> 74</dl> 75<hr> 76Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 77<dl><dt><a name="MeasurementFailure-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#MeasurementFailure-__init__">__init__</a>(...) initializes x; see help(type(x)) for signature</tt></dd></dl> 78 79<hr> 80Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 81<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#MeasurementFailure-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl> 82 83<hr> 84Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 85<dl><dt><a name="MeasurementFailure-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#MeasurementFailure-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl> 86 87<dl><dt><a name="MeasurementFailure-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#MeasurementFailure-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl> 88 89<dl><dt><a name="MeasurementFailure-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#MeasurementFailure-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl> 90 91<dl><dt><a name="MeasurementFailure-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#MeasurementFailure-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br> 92 <br> 93Use of negative indices is not supported.</tt></dd></dl> 94 95<dl><dt><a name="MeasurementFailure-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl> 96 97<dl><dt><a name="MeasurementFailure-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#MeasurementFailure-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl> 98 99<dl><dt><a name="MeasurementFailure-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#MeasurementFailure-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl> 100 101<dl><dt><a name="MeasurementFailure-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl> 102 103<dl><dt><a name="MeasurementFailure-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#MeasurementFailure-__str__">__str__</a>() <==> str(x)</tt></dd></dl> 104 105<dl><dt><a name="MeasurementFailure-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl> 106 107<hr> 108Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 109<dl><dt><strong>__dict__</strong></dt> 110</dl> 111<dl><dt><strong>args</strong></dt> 112</dl> 113<dl><dt><strong>message</strong></dt> 114</dl> 115</td></tr></table> <p> 116<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 117<tr bgcolor="#ffc8d8"> 118<td colspan=3 valign=bottom> <br> 119<font color="#000000" face="helvetica, arial"><a name="MultiTabTestAppCrashError">class <strong>MultiTabTestAppCrashError</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr> 120 121<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td> 122<td colspan=2><tt><a href="#PageTest">PageTest</a> <a href="exceptions.html#Exception">Exception</a> raised after browser or tab crash for multi-tab tests.<br> 123 <br> 124Used to abort the test rather than try to recover from an unknown state.<br> </tt></td></tr> 125<tr><td> </td> 126<td width="100%"><dl><dt>Method resolution order:</dt> 127<dd><a href="telemetry.page.page_test.html#MultiTabTestAppCrashError">MultiTabTestAppCrashError</a></dd> 128<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd> 129<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd> 130<dd><a href="__builtin__.html#object">__builtin__.object</a></dd> 131</dl> 132<hr> 133Data descriptors defined here:<br> 134<dl><dt><strong>__weakref__</strong></dt> 135<dd><tt>list of weak references to the object (if defined)</tt></dd> 136</dl> 137<hr> 138Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 139<dl><dt><a name="MultiTabTestAppCrashError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#MultiTabTestAppCrashError-__init__">__init__</a>(...) initializes x; see help(type(x)) for signature</tt></dd></dl> 140 141<hr> 142Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 143<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#MultiTabTestAppCrashError-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl> 144 145<hr> 146Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 147<dl><dt><a name="MultiTabTestAppCrashError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#MultiTabTestAppCrashError-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl> 148 149<dl><dt><a name="MultiTabTestAppCrashError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#MultiTabTestAppCrashError-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl> 150 151<dl><dt><a name="MultiTabTestAppCrashError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#MultiTabTestAppCrashError-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl> 152 153<dl><dt><a name="MultiTabTestAppCrashError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#MultiTabTestAppCrashError-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br> 154 <br> 155Use of negative indices is not supported.</tt></dd></dl> 156 157<dl><dt><a name="MultiTabTestAppCrashError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl> 158 159<dl><dt><a name="MultiTabTestAppCrashError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#MultiTabTestAppCrashError-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl> 160 161<dl><dt><a name="MultiTabTestAppCrashError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#MultiTabTestAppCrashError-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl> 162 163<dl><dt><a name="MultiTabTestAppCrashError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl> 164 165<dl><dt><a name="MultiTabTestAppCrashError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#MultiTabTestAppCrashError-__str__">__str__</a>() <==> str(x)</tt></dd></dl> 166 167<dl><dt><a name="MultiTabTestAppCrashError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl> 168 169<hr> 170Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 171<dl><dt><strong>__dict__</strong></dt> 172</dl> 173<dl><dt><strong>args</strong></dt> 174</dl> 175<dl><dt><strong>message</strong></dt> 176</dl> 177</td></tr></table> <p> 178<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 179<tr bgcolor="#ffc8d8"> 180<td colspan=3 valign=bottom> <br> 181<font color="#000000" face="helvetica, arial"><a name="PageTest">class <strong>PageTest</strong></a>(<a href="__builtin__.html#object">__builtin__.object</a>)</font></td></tr> 182 183<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td> 184<td colspan=2><tt>A class styled on unittest.TestCase for creating page-specific tests.<br> 185 <br> 186Test should override ValidateAndMeasurePage to perform test<br> 187validation and page measurement as necessary.<br> 188 <br> 189 class BodyChildElementMeasurement(<a href="#PageTest">PageTest</a>):<br> 190 def <a href="#PageTest-ValidateAndMeasurePage">ValidateAndMeasurePage</a>(self, page, tab, results):<br> 191 body_child_count = tab.EvaluateJavaScript(<br> 192 'document.body.children.length')<br> 193 results.AddValue(scalar.ScalarValue(<br> 194 page, 'body_children', 'count', body_child_count))<br> </tt></td></tr> 195<tr><td> </td> 196<td width="100%">Methods defined here:<br> 197<dl><dt><a name="PageTest-CustomizeBrowserOptions"><strong>CustomizeBrowserOptions</strong></a>(self, options)</dt><dd><tt>Override to add test-specific options to the BrowserOptions <a href="__builtin__.html#object">object</a></tt></dd></dl> 198 199<dl><dt><a name="PageTest-DidNavigateToPage"><strong>DidNavigateToPage</strong></a>(self, page, tab)</dt><dd><tt>Override to do operations right after the page is navigated and after<br> 200all waiting for completion has occurred.</tt></dd></dl> 201 202<dl><dt><a name="PageTest-DidRunPage"><strong>DidRunPage</strong></a>(self, platform)</dt><dd><tt>Called after the test run method was run, even if it failed.</tt></dd></dl> 203 204<dl><dt><a name="PageTest-DidStartBrowser"><strong>DidStartBrowser</strong></a>(self, browser)</dt><dd><tt>Override to customize the browser right after it has launched.</tt></dd></dl> 205 206<dl><dt><a name="PageTest-RestartBrowserBeforeEachPage"><strong>RestartBrowserBeforeEachPage</strong></a>(self)</dt><dd><tt>Should the browser be restarted for the page?<br> 207 <br> 208This returns true if the test needs to unconditionally restart the<br> 209browser for each page. It may be called before the browser is started.</tt></dd></dl> 210 211<dl><dt><a name="PageTest-RunNavigateSteps"><strong>RunNavigateSteps</strong></a>(self, page, tab)</dt><dd><tt>Navigates the tab to the page URL attribute.<br> 212 <br> 213Runs the 'navigate_steps' page attribute as a compound action.</tt></dd></dl> 214 215<dl><dt><a name="PageTest-SetOptions"><strong>SetOptions</strong></a>(self, options)</dt><dd><tt>Sets the BrowserFinderOptions instance to use.</tt></dd></dl> 216 217<dl><dt><a name="PageTest-StopBrowserAfterPage"><strong>StopBrowserAfterPage</strong></a>(self, browser, page)</dt><dd><tt>Should the browser be stopped after the page is run?<br> 218 <br> 219This is called after a page is run to decide whether the browser needs to<br> 220be stopped to clean up its state. If it is stopped, then it will be<br> 221restarted to run the next page.<br> 222 <br> 223A test that overrides this can look at both the page and the browser to<br> 224decide whether it needs to stop the browser.</tt></dd></dl> 225 226<dl><dt><a name="PageTest-TabForPage"><strong>TabForPage</strong></a>(self, page, browser)</dt><dd><tt>Override to select a different tab for the page. For instance, to<br> 227create a new tab for every page, return browser.tabs.New().</tt></dd></dl> 228 229<dl><dt><a name="PageTest-ValidateAndMeasurePage"><strong>ValidateAndMeasurePage</strong></a>(self, page, tab, results)</dt><dd><tt>Override to check test assertions and perform measurement.<br> 230 <br> 231When adding measurement results, call results.AddValue(...) for<br> 232each result. Raise an exception or add a failure.FailureValue on<br> 233failure. page_test.py also provides several base exception classes<br> 234to use.<br> 235 <br> 236Prefer metric value names that are in accordance with python<br> 237variable style. e.g., metric_name. The name 'url' must not be used.<br> 238 <br> 239Put together:<br> 240 def <a href="#PageTest-ValidateAndMeasurePage">ValidateAndMeasurePage</a>(self, page, tab, results):<br> 241 res = tab.EvaluateJavaScript('2+2')<br> 242 if res != 4:<br> 243 raise <a href="exceptions.html#Exception">Exception</a>('Oh, wow.')<br> 244 results.AddValue(scalar.ScalarValue(<br> 245 page, 'two_plus_two', 'count', res))<br> 246 <br> 247Args:<br> 248 page: A telemetry.page.Page instance.<br> 249 tab: A telemetry.core.Tab instance.<br> 250 results: A telemetry.results.PageTestResults instance.</tt></dd></dl> 251 252<dl><dt><a name="PageTest-WillNavigateToPage"><strong>WillNavigateToPage</strong></a>(self, page, tab)</dt><dd><tt>Override to do operations before the page is navigated, notably Telemetry<br> 253will already have performed the following operations on the browser before<br> 254calling this function:<br> 255* Ensure only one tab is open.<br> 256* Call WaitForDocumentReadyStateToComplete on the tab.</tt></dd></dl> 257 258<dl><dt><a name="PageTest-WillStartBrowser"><strong>WillStartBrowser</strong></a>(self, platform)</dt><dd><tt>Override to manipulate the browser environment before it launches.</tt></dd></dl> 259 260<dl><dt><a name="PageTest-__init__"><strong>__init__</strong></a>(self, needs_browser_restart_after_each_page<font color="#909090">=False</font>, clear_cache_before_each_run<font color="#909090">=False</font>)</dt></dl> 261 262<hr> 263Data descriptors defined here:<br> 264<dl><dt><strong>__dict__</strong></dt> 265<dd><tt>dictionary for instance variables (if defined)</tt></dd> 266</dl> 267<dl><dt><strong>__weakref__</strong></dt> 268<dd><tt>list of weak references to the object (if defined)</tt></dd> 269</dl> 270<dl><dt><strong>clear_cache_before_each_run</strong></dt> 271<dd><tt>When set to True, the browser's disk and memory cache will be cleared<br> 272before each run.</tt></dd> 273</dl> 274<dl><dt><strong>close_tabs_before_run</strong></dt> 275<dd><tt>When set to True, all tabs are closed before running the test for the<br> 276first time.</tt></dd> 277</dl> 278<dl><dt><strong>is_multi_tab_test</strong></dt> 279<dd><tt>Returns True if the test opens multiple tabs.<br> 280 <br> 281If the test overrides TabForPage, it is deemed a multi-tab test.<br> 282Multi-tab tests do not retry after tab or browser crashes, whereas,<br> 283single-tab tests too. That is because the state of multi-tab tests<br> 284(e.g., how many tabs are open, etc.) is unknown after crashes.</tt></dd> 285</dl> 286</td></tr></table> <p> 287<table width="100%" cellspacing=0 cellpadding=2 border=0 summary="section"> 288<tr bgcolor="#ffc8d8"> 289<td colspan=3 valign=bottom> <br> 290<font color="#000000" face="helvetica, arial"><a name="TestNotSupportedOnPlatformError">class <strong>TestNotSupportedOnPlatformError</strong></a>(<a href="exceptions.html#Exception">exceptions.Exception</a>)</font></td></tr> 291 292<tr bgcolor="#ffc8d8"><td rowspan=2><tt> </tt></td> 293<td colspan=2><tt><a href="#PageTest">PageTest</a> <a href="exceptions.html#Exception">Exception</a> raised when a required feature is unavailable.<br> 294 <br> 295The feature required to run the test could be part of the platform,<br> 296hardware configuration, or browser.<br> </tt></td></tr> 297<tr><td> </td> 298<td width="100%"><dl><dt>Method resolution order:</dt> 299<dd><a href="telemetry.page.page_test.html#TestNotSupportedOnPlatformError">TestNotSupportedOnPlatformError</a></dd> 300<dd><a href="exceptions.html#Exception">exceptions.Exception</a></dd> 301<dd><a href="exceptions.html#BaseException">exceptions.BaseException</a></dd> 302<dd><a href="__builtin__.html#object">__builtin__.object</a></dd> 303</dl> 304<hr> 305Data descriptors defined here:<br> 306<dl><dt><strong>__weakref__</strong></dt> 307<dd><tt>list of weak references to the object (if defined)</tt></dd> 308</dl> 309<hr> 310Methods inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 311<dl><dt><a name="TestNotSupportedOnPlatformError-__init__"><strong>__init__</strong></a>(...)</dt><dd><tt>x.<a href="#TestNotSupportedOnPlatformError-__init__">__init__</a>(...) initializes x; see help(type(x)) for signature</tt></dd></dl> 312 313<hr> 314Data and other attributes inherited from <a href="exceptions.html#Exception">exceptions.Exception</a>:<br> 315<dl><dt><strong>__new__</strong> = <built-in method __new__ of type object><dd><tt>T.<a href="#TestNotSupportedOnPlatformError-__new__">__new__</a>(S, ...) -> a new <a href="__builtin__.html#object">object</a> with type S, a subtype of T</tt></dl> 316 317<hr> 318Methods inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 319<dl><dt><a name="TestNotSupportedOnPlatformError-__delattr__"><strong>__delattr__</strong></a>(...)</dt><dd><tt>x.<a href="#TestNotSupportedOnPlatformError-__delattr__">__delattr__</a>('name') <==> del x.name</tt></dd></dl> 320 321<dl><dt><a name="TestNotSupportedOnPlatformError-__getattribute__"><strong>__getattribute__</strong></a>(...)</dt><dd><tt>x.<a href="#TestNotSupportedOnPlatformError-__getattribute__">__getattribute__</a>('name') <==> x.name</tt></dd></dl> 322 323<dl><dt><a name="TestNotSupportedOnPlatformError-__getitem__"><strong>__getitem__</strong></a>(...)</dt><dd><tt>x.<a href="#TestNotSupportedOnPlatformError-__getitem__">__getitem__</a>(y) <==> x[y]</tt></dd></dl> 324 325<dl><dt><a name="TestNotSupportedOnPlatformError-__getslice__"><strong>__getslice__</strong></a>(...)</dt><dd><tt>x.<a href="#TestNotSupportedOnPlatformError-__getslice__">__getslice__</a>(i, j) <==> x[i:j]<br> 326 <br> 327Use of negative indices is not supported.</tt></dd></dl> 328 329<dl><dt><a name="TestNotSupportedOnPlatformError-__reduce__"><strong>__reduce__</strong></a>(...)</dt></dl> 330 331<dl><dt><a name="TestNotSupportedOnPlatformError-__repr__"><strong>__repr__</strong></a>(...)</dt><dd><tt>x.<a href="#TestNotSupportedOnPlatformError-__repr__">__repr__</a>() <==> repr(x)</tt></dd></dl> 332 333<dl><dt><a name="TestNotSupportedOnPlatformError-__setattr__"><strong>__setattr__</strong></a>(...)</dt><dd><tt>x.<a href="#TestNotSupportedOnPlatformError-__setattr__">__setattr__</a>('name', value) <==> x.name = value</tt></dd></dl> 334 335<dl><dt><a name="TestNotSupportedOnPlatformError-__setstate__"><strong>__setstate__</strong></a>(...)</dt></dl> 336 337<dl><dt><a name="TestNotSupportedOnPlatformError-__str__"><strong>__str__</strong></a>(...)</dt><dd><tt>x.<a href="#TestNotSupportedOnPlatformError-__str__">__str__</a>() <==> str(x)</tt></dd></dl> 338 339<dl><dt><a name="TestNotSupportedOnPlatformError-__unicode__"><strong>__unicode__</strong></a>(...)</dt></dl> 340 341<hr> 342Data descriptors inherited from <a href="exceptions.html#BaseException">exceptions.BaseException</a>:<br> 343<dl><dt><strong>__dict__</strong></dt> 344</dl> 345<dl><dt><strong>args</strong></dt> 346</dl> 347<dl><dt><strong>message</strong></dt> 348</dl> 349</td></tr></table></td></tr></table> 350</body></html>