You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
calibre-web/test/Calibre-Web TestSummary_Lin...

4395 lines
144 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Calibre-Web Tests</title>
<meta name="generator" content=""/>
<meta name="version" content=""/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Bootstrap -->
<link href="./../cps/static/css/libs/bootstrap.min.css" rel="stylesheet">
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="./../cps/static/js/libs/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="./../cps/static/js/libs/bootstrap.min.js"></script>
<!-- Project CSS -->
<link href="css/runner.css" rel="stylesheet">
<!-- Project JS -->
<script src="js/runner.js"></script>
</head>
<body>
<div class="row report-title">
<h1 id='report_title' class="text-center">Calibre-Web Tests</h1>
</div>
<div class="row">
<div class="col">
<div class="col-xs-12 col-sm-6">
<div class="piechart">
<div>
<canvas id="circle" width="350" height="168" ></canvas>
</div>
</div>
</div>
<div class="col-xs-12 col-sm-6">
<div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3" style="margin-top:50px;">
<p class='text-justify attribute'><strong>Start Time: </strong>2021-04-12 21:44:07</p>
</div>
</div>
<div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3">
<p class='text-justify attribute'><strong>Stop Time: </strong>2021-04-13 00:22:44</p>
</div>
</div>
<div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3">
<p class='text-justify attribute'><strong>Duration: </strong>2h 7 min</p>
</div>
</div>
</div>
</div>
</div>
<div class='report-description'>
<div id='report_description' class='row text-center'></div>
</div>
<div class='text-center buttons'>
<div id='show_detail_line' class="btn-group pagination-centered" role="group" aria-label="TESTE">
<button type="button" class="btn btn-success" data-toggle="button" aria-pressed="false" data-placement="top"
title="Show only the execution summary" onclick="showCase(0)">Summary
</button>
<button type="button" class="btn btn-info" data-toggle="button" aria-pressed="false" data-placement="top"
title="Show only the execution summary" onclick="showCase(5)">Summary Problems
</button>
<button type="button" class="btn btn-warning" data-toggle="button" aria-pressed="false" data-placement="top"
title="Show skipped test cases" onclick="showCase(3)">Skipped
</button>
<button type="button" class="btn btn-danger" data-toggle="button" aria-pressed="false" data-placement="top"
title="Show the filed test cases" onclick="showCase(1)">Failed
</button>
<button type="button" class="btn btn-info" data-toggle="button" aria-pressed="false" data-placement="top"
title="Show the filed test cases" onclick="showCase(4)">Error
</button>
<button type="button" class="btn btn-primary" data-toggle="tooltip" aria-pressed="false" data-placement="top"
title="Show all test cases" onclick="showCase(2)">All
</button>
</div>
</div>
<table id='result_table' class='table table-bordered table-responsive table-curved'>
<colgroup>
<col/>
<col/>
<col/>
<col/>
<col/>
<col/>
</colgroup>
<tr id='header_row' class="text-center bg-grey">
<td>Test Group/Test case</td>
<td>Count</td>
<td>Pass</td>
<td>Fail</td>
<td>Error</td>
<td>Skip</td>
<td>View</td>
</tr>
<tr id="su" class="passClass">
<td>TestAnonymous</td>
<td class="text-center">13</td>
<td class="text-center">13</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c1', 13)">Detail</a>
</td>
</tr>
<tr id='pt1.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_check_locale_guest</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_about</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_change_visibility_category</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_change_visibility_format</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_change_visibility_hot</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_change_visibility_language</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_change_visibility_publisher</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_change_visibility_rated</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_change_visibility_rating</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_change_visibility_series</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_random_books_available</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_restricted_settings_visibility</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt1.13' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestAnonymous - test_guest_visibility_sidebar</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="skipClass">
<td>TestCli</td>
<td class="text-center">8</td>
<td class="text-center">7</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">
<a onclick="showClassDetail('c2', 8)">Detail</a>
</td>
</tr>
<tr id='pt2.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCli - test_already_started</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt2.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCli - test_bind_to_single_interface</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt2.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCli - test_cli_SSL_files</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt2.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCli - test_cli_different_folder</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt2.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCli - test_cli_different_settings_database</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="st2.6" class="none bg-warning">
<td>
<div class='testcase'>TestCli - test_cli_gdrive_location</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st2.6')">SKIP</a>
</div>
<!--css div popup start-->
<div id="div_st2.6" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_st2.6').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Not Implemented</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt2.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCli - test_environ_port_setting</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt2.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCli - test_settingsdb_not_writeable</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestCoverEditBooks</td>
<td class="text-center">1</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c3', 1)">Detail</a>
</td>
</tr>
<tr id='pt3.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCoverEditBooks - test_upload_jpg</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestDeleteDatabase</td>
<td class="text-center">1</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c4', 1)">Detail</a>
</td>
</tr>
<tr id='pt4.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestDeleteDatabase - test_delete_books_in_database</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestEbookConvertCalibre</td>
<td class="text-center">11</td>
<td class="text-center">11</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c5', 11)">Detail</a>
</td>
</tr>
<tr id='pt5.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_convert_deactivate</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt5.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_convert_email</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt5.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_convert_failed_and_email</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt5.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_convert_only</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt5.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_convert_parameter</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt5.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_convert_wrong_excecutable</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt5.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_email_failed</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt5.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_email_only</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt5.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_kindle_send_not_configured</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt5.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_ssl_smtp_setup_error</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt5.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibre - test_starttls_smtp_setup_error</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestEbookConvertCalibreGDrive</td>
<td class="text-center">6</td>
<td class="text-center">6</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c6', 6)">Detail</a>
</td>
</tr>
<tr id='pt6.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibreGDrive - test_convert_email</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt6.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibreGDrive - test_convert_failed_and_email</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt6.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibreGDrive - test_convert_only</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt6.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibreGDrive - test_convert_parameter</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt6.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibreGDrive - test_email_failed</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt6.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertCalibreGDrive - test_email_only</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestEbookConvertKepubify</td>
<td class="text-center">3</td>
<td class="text-center">3</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c7', 3)">Detail</a>
</td>
</tr>
<tr id='pt7.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertKepubify - test_convert_deactivate</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt7.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertKepubify - test_convert_only</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt7.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertKepubify - test_convert_wrong_excecutable</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestEbookConvertGDriveKepubify</td>
<td class="text-center">3</td>
<td class="text-center">3</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c8', 3)">Detail</a>
</td>
</tr>
<tr id='pt8.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertGDriveKepubify - test_convert_deactivate</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt8.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertGDriveKepubify - test_convert_only</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt8.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEbookConvertGDriveKepubify - test_convert_wrong_excecutable</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="skipClass">
<td>TestEditAdditionalBooks</td>
<td class="text-center">13</td>
<td class="text-center">12</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">
<a onclick="showClassDetail('c9', 13)">Detail</a>
</td>
</tr>
<tr id='pt9.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_change_upload_formats</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt9.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_delete_book</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt9.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_delete_role</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt9.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_edit_book_identifier</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt9.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_edit_book_identifier_capital</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt9.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_edit_book_identifier_standard</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt9.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_edit_special_book_identifier</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt9.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_title_sort</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt9.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_upload_edit_role</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt9.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_upload_metadata_cbr</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt9.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_upload_metadata_cbt</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="st9.12" class="none bg-warning">
<td>
<div class='testcase'>TestEditAdditionalBooks - test_writeonly_calibre_database</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st9.12')">SKIP</a>
</div>
<!--css div popup start-->
<div id="div_st9.12" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_st9.12').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Not implemented</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt9.13' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditAdditionalBooks - test_writeonly_path</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="skipClass">
<td>TestEditBooks</td>
<td class="text-center">33</td>
<td class="text-center">31</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">2</td>
<td class="text-center">
<a onclick="showClassDetail('c10', 33)">Detail</a>
</td>
</tr>
<tr id='pt10.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_download_book</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_author</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_category</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_comments</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_custom_bool</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_custom_categories</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_custom_float</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_custom_int</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_custom_rating</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_custom_single_select</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_custom_text</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_language</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.13' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_publisher</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="st10.14" class="none bg-warning">
<td>
<div class='testcase'>TestEditBooks - test_edit_publishing_date</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st10.14')">SKIP</a>
</div>
<!--css div popup start-->
<div id="div_st10.14" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_st10.14').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Not Implemented</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt10.15' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_rating</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.16' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_series</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.17' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_edit_title</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="st10.18" class="none bg-warning">
<td>
<div class='testcase'>TestEditBooks - test_rename_uppercase_lowercase</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st10.18')">SKIP</a>
</div>
<!--css div popup start-->
<div id="div_st10.18" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_st10.18').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Not Implemented</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt10.19' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_typeahead_author</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.20' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_typeahead_functions</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.21' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_typeahead_language</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.22' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_typeahead_publisher</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.23' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_typeahead_series</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.24' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_typeahead_tag</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.25' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_upload_book_cbr</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.26' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_upload_book_cbt</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.27' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_upload_book_cbz</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.28' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_upload_book_epub</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.29' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_upload_book_fb2</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.30' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_upload_book_lit</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.31' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_upload_book_mobi</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.32' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_upload_book_pdf</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt10.33' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooks - test_upload_cover_hdd</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="errorClass">
<td>TestEditBooksList</td>
<td class="text-center">10</td>
<td class="text-center">6</td>
<td class="text-center">3</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c11', 10)">Detail</a>
</td>
</tr>
<tr id='pt11.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksList - test_bookslist_edit_author</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="et11.2" class="none bg-info">
<td>
<div class='testcase'>TestEditBooksList - test_bookslist_edit_categories</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et11.2')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et11.2" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_et11.2').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_list.py", line 138, in test_bookslist_edit_categories
bl = self.get_books_list(-1) # we are now back on page 1 again
File "/home/ozzie/Development/calibre-web-test/test/helper_ui.py", line 1632, in get_books_list
row_elements = element.find_elements_by_xpath("./td")
File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 381, in find_elements_by_xpath
return self.find_elements(by=By.XPATH, value=xpath)
File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 684, in find_elements
return self._execute(Command.FIND_CHILD_ELEMENTS,
File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webelement.py", line 633, in _execute
return self._parent.execute(command, params)
File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/home/ozzie/Development/calibre-web-test/venv/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: The element reference of <tr class="no-records-found"> is stale; either the element is no longer attached to the DOM, it is not in the current frame context, or the document has been refreshed</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="ft11.3" class="none bg-danger">
<td>
<div class='testcase'>TestEditBooksList - test_bookslist_edit_languages</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft11.3')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft11.3" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft11.3').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_list.py", line 211, in test_bookslist_edit_languages
self.assertEqual("+", bl['table'][4]['Languages']['text'])
AssertionError: '+' != 'English'
- +
+ English</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt11.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksList - test_bookslist_edit_publisher</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt11.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksList - test_bookslist_edit_series</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="ft11.6" class="none bg-danger">
<td>
<div class='testcase'>TestEditBooksList - test_bookslist_edit_seriesindex</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft11.6')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft11.6" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft11.6').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_list.py", line 239, in test_bookslist_edit_seriesindex
self.assertEqual("+", bl['table'][6]['Series Index']['text'])
AssertionError: '+' != '3'
- +
+ 3</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt11.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksList - test_bookslist_edit_title</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt11.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksList - test_list_visibility</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt11.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksList - test_restricted_rights</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="ft11.10" class="none bg-danger">
<td>
<div class='testcase'>TestEditBooksList - test_search_books_list</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft11.10')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft11.10" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft11.10').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_list.py", line 53, in test_search_books_list
bl = self.check_search(bl, "HaLaG", 2, "Author Sort", "Beutlin, Frodo & Halagal, Norbert & Yang, Liu & Gonçalves, Hector")
File "/home/ozzie/Development/calibre-web-test/test/test_edit_books_list.py", line 44, in check_search
self.assertEqual(value, bl['table'][0][column]['text'])
AssertionError: 'Beutlin, Frodo & Halagal, Norbert & Yang, Liu & Gonçalves, Hector' != 'Halagal, Norbert'
- Beutlin, Frodo & Halagal, Norbert & Yang, Liu & Gonçalves, Hector
+ Halagal, Norbert</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="su" class="errorClass">
<td>TestEditBooksOnGdrive</td>
<td class="text-center">20</td>
<td class="text-center">18</td>
<td class="text-center">1</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c12', 20)">Detail</a>
</td>
</tr>
<tr id='pt12.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_download_book</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="ft12.2" class="none bg-danger">
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_author</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft12.2')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft12.2" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft12.2').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 369, in test_edit_author
self.assertEqual(u'Pipo, Pipe', author.get_attribute('value'))
AssertionError: 'Pipo, Pipe' != 'Pipo| Pipe'
- Pipo, Pipe
? ^
+ Pipo| Pipe
? ^</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt12.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_category</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_comments</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_custom_bool</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_custom_categories</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_custom_float</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_custom_int</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_custom_rating</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_custom_single_select</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_custom_text</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_language</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.13' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_publisher</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.14' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_rating</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.15' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_series</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="et12.16" class="none bg-info">
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_edit_title</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et12.16')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et12.16" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_et12.16').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py", line 239, in test_edit_title
self.assertEqual(ele.text, u'Very long extra super turbo cool title without any issue of displaying including ö utf-8 characters')
AttributeError: 'bool' object has no attribute 'text'</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt12.17' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_upload_book_epub</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.18' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_upload_book_lit</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.19' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_upload_cover_hdd</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt12.20' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_watch_metadata</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestSTARTTLS</td>
<td class="text-center">3</td>
<td class="text-center">3</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c13', 3)">Detail</a>
</td>
</tr>
<tr id='pt13.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestSTARTTLS - test_STARTTLS</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt13.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestSTARTTLS - test_STARTTLS_SSL_setup_error</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt13.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestSTARTTLS - test_STARTTLS_resend_password</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestSSL</td>
<td class="text-center">5</td>
<td class="text-center">5</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c14', 5)">Detail</a>
</td>
</tr>
<tr id='pt14.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestSSL - test_SSL_None_setup_error</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt14.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestSSL - test_SSL_STARTTLS_setup_error</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt14.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestSSL - test_SSL_logging_email</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt14.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestSSL - test_SSL_only</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt14.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestSSL - test_email_limit</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestFilePicker</td>
<td class="text-center">3</td>
<td class="text-center">3</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c15', 3)">Detail</a>
</td>
</tr>
<tr id='pt15.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestFilePicker - test_filepicker_all_file</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt15.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestFilePicker - test_filepicker_limited_file</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt15.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestFilePicker - test_filepicker_new_file</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestSetupGdrive</td>
<td class="text-center">1</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c16', 1)">Detail</a>
</td>
</tr>
<tr id='pt16.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestSetupGdrive - test_config_gdrive</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestGoodreads</td>
<td class="text-center">3</td>
<td class="text-center">3</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c17', 3)">Detail</a>
</td>
</tr>
<tr id='pt17.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestGoodreads - test_author_page</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt17.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestGoodreads - test_author_page_invalid</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt17.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestGoodreads - test_goodreads_about</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="failClass">
<td>TestKoboSync</td>
<td class="text-center">9</td>
<td class="text-center">8</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c18', 9)">Detail</a>
</td>
</tr>
<tr id="ft18.1" class="none bg-danger">
<td>
<div class='testcase'>TestKoboSync - test_book_download</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft18.1')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft18.1" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft18.1').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 128, in inital_sync
self.assertEqual(data[3]['NewEntitlement']['BookMetadata']['DownloadUrls'][1]['Format'], 'EPUB')
IndexError: list index out of range
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 578, in test_book_download
data = self.inital_sync()
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 140, in inital_sync
self.assertFalse(e, data)
AssertionError: IndexError('list index out of range') is not false : [{'NewEntitlement': {'BookEntitlement': {'Accessibility': 'Full', 'ActivePeriod': {'From': '2021-04-12T23:03:42Z'}, 'Created': '2017-01-20T20:10:53Z', 'CrossRevisionId': 'c1c739b4-000d-4475-8aaf-e10e5d7d6dfe', 'Id': 'c1c739b4-000d-4475-8aaf-e10e5d7d6dfe', 'IsHiddenFromArchive': False, 'IsLocked': False, 'IsRemoved': False, 'LastModified': '2019-01-12T11:18:51Z', 'OriginCategory': 'Imported', 'RevisionId': 'c1c739b4-000d-4475-8aaf-e10e5d7d6dfe', 'Status': 'Active'}, 'BookMetadata': {'Categories': ['00000000-0000-0000-0000-000000000001'], 'ContributorRoles': [{'Name': 'Leo Baskerville', 'Role': 'Author'}], 'Contributors': 'Leo Baskerville', 'CoverImageId': 'c1c739b4-000d-4475-8aaf-e10e5d7d6dfe', 'CrossRevisionId': 'c1c739b4-000d-4475-8aaf-e10e5d7d6dfe', 'CurrentDisplayPrice': {'CurrencyCode': 'USD', 'TotalAmount': 0}, 'CurrentLoveDisplayPrice': {'TotalAmount': 0}, 'Description': None, 'DownloadUrls': [{'Format': 'KEPUB', 'Platform': 'Generic', 'Size': 8391, 'Url': 'http://192.168.188.57:8083/kobo/9073998e0986717f096589fd81a6d31e/download/8/kepub'}], 'EntitlementId': 'c1c739b4-000d-4475-8aaf-e10e5d7d6dfe', 'ExternalIds': [], 'Genre': '00000000-0000-0000-0000-000000000001', 'IsEligibleForKoboLove': False, 'IsInternetArchive': False, 'IsPreOrder': False, 'IsSocialEnabled': True, 'Language': 'en', 'PhoneticPronunciations': {}, 'PublicationDate': 'Sat, 01 Jan 0101 00:00:00 GMT', 'Publisher': {'Imprint': '', 'Name': None}, 'RevisionId': 'c1c739b4-000d-4475-8aaf-e10e5d7d6dfe', 'Title': 'book8', 'WorkId': 'c1c739b4-000d-4475-8aaf-e10e5d7d6dfe'}, 'ReadingState': {'Created': '2017-01-20T20:10:53Z', 'CurrentBookmark': {'LastModified': '2021-04-12T21:03:42Z'}, 'EntitlementId': 'c1c739b4-000d-4475-8aaf-e10e5d7d6dfe', 'LastModified': '2021-04-12T21:03:42Z', 'PriorityTimestamp': '2021-04-12T21:03:42Z', 'Statistics': {'LastModified': '2021-04-12T21:03:42Z'}, 'StatusInfo': {'LastModified': '2021-04-12T21:03:42Z', 'Status': 'ReadyToRead', 'TimesStartedReading': 0}}}}, {'NewEntitlement': {'BookEntitlement': {'Accessibility': 'Full', 'ActivePeriod': {'From': '2021-04-12T23:03:42Z'}, 'Created': '2017-01-20T20:10:54Z', 'CrossRevisionId': 'da18a6c8-c1f2-4110-a4ad-344815961392', 'Id': 'da18a6c8-c1f2-4110-a4ad-344815961392', 'IsHiddenFromArchive': False, 'IsLocked': False, 'IsRemoved': False, 'LastModified': '2019-01-12T11:18:51Z', 'OriginCategory': 'Imported', 'RevisionId': 'da18a6c8-c1f2-4110-a4ad-344815961392', 'Status': 'Active'}, 'BookMetadata': {'Categories': ['00000000-0000-0000-0000-000000000001'], 'ContributorRoles': [{'Name': 'Peter Parker', 'Role': 'Author'}], 'Contributors': 'Peter Parker', 'CoverImageId': 'da18a6c8-c1f2-4110-a4ad-344815961392', 'CrossRevisionId': 'da18a6c8-c1f2-4110-a4ad-344815961392', 'CurrentDisplayPrice': {'CurrencyCode': 'USD', 'TotalAmount': 0}, 'CurrentLoveDisplayPrice': {'TotalAmount': 0}, 'Description': None, 'DownloadUrls': [{'Format': 'KEPUB', 'Platform': 'Generic', 'Size': 6104, 'Url': 'http://192.168.188.57:8083/kobo/9073998e0986717f096589fd81a6d31e/download/10/kepub'}], 'EntitlementId': 'da18a6c8-c1f2-4110-a4ad-344815961392', 'ExternalIds': [], 'Genre': '00000000-0000-0000-0000-000000000001', 'IsEligibleForKoboLove': False, 'IsInternetArchive': False, 'IsPreOrder': False, 'IsSocialEnabled': True, 'Language': 'en', 'PhoneticPronunciations': {}, 'PublicationDate': 'Sat, 01 Jan 0101 00:00:00 GMT', 'Publisher': {'Imprint': '', 'Name': None}, 'RevisionId': 'da18a6c8-c1f2-4110-a4ad-344815961392', 'Title': 'book7', 'WorkId': 'da18a6c8-c1f2-4110-a4ad-344815961392'}, 'ReadingState': {'Created': '2017-01-20T20:10:54Z', 'CurrentBookmark': {'LastModified': '2021-04-12T21:03:42Z'}, 'EntitlementId': 'da18a6c8-c1f2-4110-a4ad-344815961392', 'LastModified': '2021-04-12T21:03:42Z', 'PriorityTimestamp': '2021-04-12T21:03:42Z', 'Statistics': {'LastModified': '2021-04-12T21:03:42Z'}, 'StatusInfo': {'LastModified': '2021-04-12T21:03:42Z', 'Status': 'ReadyToRead', 'TimesStartedReading': 0}}}}, {'NewEntitlement': {'BookEntitlement': {'Accessibility': 'Full', 'ActivePeriod': {'From': '2021-04-12T23:03:42Z'}, 'Created': '2017-01-20T20:10:53Z', 'CrossRevisionId': '2593127f-b40e-42bf-a999-d042f67e5212', 'Id': '2593127f-b40e-42bf-a999-d042f67e5212', 'IsHiddenFromArchive': False, 'IsLocked': False, 'IsRemoved': False, 'LastModified': '2020-05-17T08:40:54Z', 'OriginCategory': 'Imported', 'RevisionId': '2593127f-b40e-42bf-a999-d042f67e5212', 'Status': 'Active'}, 'BookMetadata': {'Categories': ['00000000-0000-0000-0000-000000000001'], 'ContributorRoles': [{'Name': 'Sigurd Lindgren', 'Role': 'Author'}], 'Contributors': 'Sigurd Lindgren', 'CoverImageId': '2593127f-b40e-42bf-a999-d042f67e5212', 'CrossRevisionId': '2593127f-b40e-42bf-a999-d042f67e5212', 'CurrentDisplayPrice': {'CurrencyCode': 'USD', 'TotalAmount': 0}, 'CurrentLoveDisplayPrice': {'TotalAmount': 0}, 'Description': None, 'DownloadUrls': [{'Format': 'KEPUB', 'Platform': 'Generic', 'Size': 7592, 'Url': 'http://192.168.188.57:8083/kobo/9073998e0986717f096589fd81a6d31e/download/9/kepub'}], 'EntitlementId': '2593127f-b40e-42bf-a999-d042f67e5212', 'ExternalIds': [], 'Genre': '00000000-0000-0000-0000-000000000001', 'IsEligibleForKoboLove': False, 'IsInternetArchive': False, 'IsPreOrder': False, 'IsSocialEnabled': True, 'Language': 'en', 'PhoneticPronunciations': {}, 'PublicationDate': 'Sat, 01 Jan 0101 00:00:00 GMT', 'Publisher': {'Imprint': '', 'Name': None}, 'RevisionId': '2593127f-b40e-42bf-a999-d042f67e5212', 'Series': {'Id': 'cad7d6c3-f4e9-37e9-b9be-8b98c80bb5cc', 'Name': 'Loko', 'Number': 1, 'NumberFloat': 1.0}, 'Title': 'book6', 'WorkId': '2593127f-b40e-42bf-a999-d042f67e5212'}, 'ReadingState': {'Created': '2017-01-20T20:10:53Z', 'CurrentBookmark': {'LastModified': '2021-04-12T21:03:42Z'}, 'EntitlementId': '2593127f-b40e-42bf-a999-d042f67e5212', 'LastModified': '2021-04-12T21:03:42Z', 'PriorityTimestamp': '2021-04-12T21:03:42Z', 'Statistics': {'LastModified': '2021-04-12T21:03:42Z'}, 'StatusInfo': {'LastModified': '2021-04-12T21:03:42Z', 'Status': 'ReadyToRead', 'TimesStartedReading': 0}}}}, {'NewEntitlement': {'BookEntitlement': {'Accessibility': 'Full', 'ActivePeriod': {'From': '2021-04-12T23:03:42Z'}, 'Created': '2017-01-20T20:00:15Z', 'CrossRevisionId': '8f1b72c1-e9a4-4212-b538-8e4f4837d201', 'Id': '8f1b72c1-e9a4-4212-b538-8e4f4837d201', 'IsHiddenFromArchive': False, 'IsLocked': False, 'IsRemoved': False, 'LastModified': '2021-04-12T21:03:42Z', 'OriginCategory': 'Imported', 'RevisionId': '8f1b72c1-e9a4-4212-b538-8e4f4837d201', 'Status': 'Active'}, 'BookMetadata': {'Categories': ['00000000-0000-0000-0000-000000000001'], 'ContributorRoles': [{'Name': 'John Döe执', 'Role': 'Author'}, {'Name': 'Mon Go', 'Role': 'Author'}], 'Contributors': ['John Döe执', 'Mon Go'], 'CoverImageId': '8f1b72c1-e9a4-4212-b538-8e4f4837d201', 'CrossRevisionId': '8f1b72c1-e9a4-4212-b538-8e4f4837d201', 'CurrentDisplayPrice': {'CurrencyCode': 'USD', 'TotalAmount': 0}, 'CurrentLoveDisplayPrice': {'TotalAmount': 0}, 'Description': '<p>b物</p>', 'DownloadUrls': [{'Format': 'KEPUB', 'Platform': 'Generic', 'Size': 8572, 'Url': 'http://192.168.188.57:8083/kobo/9073998e0986717f096589fd81a6d31e/download/5/kepub'}], 'EntitlementId': '8f1b72c1-e9a4-4212-b538-8e4f4837d201', 'ExternalIds': [], 'Genre': '00000000-0000-0000-0000-000000000001', 'IsEligibleForKoboLove': False, 'IsInternetArchive': False, 'IsPreOrder': False, 'IsSocialEnabled': True, 'Language': 'en', 'PhoneticPronunciations': {}, 'PublicationDate': 'Thu, 19 Jan 2017 00:00:00 GMT', 'Publisher': {'Imprint': '', 'Name': 'Publish执'}, 'RevisionId': '8f1b72c1-e9a4-4212-b538-8e4f4837d201', 'Series': {'Id': '1c5d353f-e0cd-33cc-92b9-88db7329aaa9', 'Name': 'O0ü 执', 'Number': 1.5, 'NumberFloat': 1.5}, 'Title': 'testbook执', 'WorkId': '8f1b72c1-e9a4-4212-b538-8e4f4837d201'}, 'ReadingState': {'Created': '2017-01-20T20:00:15Z', 'CurrentBookmark': {'LastModified': '2021-04-12T21:03:42Z'}, 'EntitlementId': '8f1b72c1-e9a4-4212-b538-8e4f4837d201', 'LastModified': '2021-04-12T21:03:42Z', 'PriorityTimestamp': '2021-04-12T21:03:42Z', 'Statistics': {'LastModified': '2021-04-12T21:03:42Z'}, 'StatusInfo': {'LastModified': '2021-04-12T21:03:42Z', 'Status': 'ReadyToRead', 'TimesStartedReading': 0}}}}]</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt18.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestKoboSync - test_kobo_about</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt18.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestKoboSync - test_shelves_add_remove_books</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt18.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestKoboSync - test_sync_changed_book</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt18.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestKoboSync - test_sync_invalid</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt18.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestKoboSync - test_sync_reading_state</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt18.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestKoboSync - test_sync_shelf</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt18.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestKoboSync - test_sync_unchanged</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt18.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestKoboSync - test_sync_upload</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestLdapLogin</td>
<td class="text-center">13</td>
<td class="text-center">13</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c19', 13)">Detail</a>
</td>
</tr>
<tr id='pt19.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_LDAP_SSL</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_LDAP_SSL_CERTIFICATE</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_LDAP_STARTTLS</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_LDAP_fallback_Login</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_LDAP_import</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_LDAP_import_memberfield</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_LDAP_login</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_invalid_LDAP</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_ldap_about</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_ldap_authentication</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_ldap_kobo_sync</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_ldap_opds_anonymous</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt19.13' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLdapLogin - test_ldap_opds_download_book</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="skipClass">
<td>TestLogging</td>
<td class="text-center">7</td>
<td class="text-center">6</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">
<a onclick="showClassDetail('c20', 7)">Detail</a>
</td>
</tr>
<tr id='pt20.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogging - test_access_log_recover</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt20.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogging - test_debug_log</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt20.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogging - test_failed_login</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="st20.4" class="none bg-warning">
<td>
<div class='testcase'>TestLogging - test_failed_register</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st20.4')">SKIP</a>
</div>
<!--css div popup start-->
<div id="div_st20.4" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_st20.4').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Not Implemented</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt20.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogging - test_logfile_change</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt20.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogging - test_logfile_recover</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt20.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogging - test_logviewer</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestLogin</td>
<td class="text-center">14</td>
<td class="text-center">14</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c21', 14)">Detail</a>
</td>
</tr>
<tr id='pt21.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_digest_login</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_login_capital_letters_user_unicode_password</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_login_delete_admin</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_login_empty_password</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_login_locale_select</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_login_protected</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_login_remember_me</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_login_rename_user</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_login_unicode_user_space_end_password</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_login_user_with_space_password_end_space</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_magic_remote_login</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_next</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.13' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_proxy_login</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt21.14' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestLogin - test_robots</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="failClass">
<td>TestMergeBooksList</td>
<td class="text-center">2</td>
<td class="text-center">1</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c22', 2)">Detail</a>
</td>
</tr>
<tr id="ft22.1" class="none bg-danger">
<td>
<div class='testcase'>TestMergeBooksList - test_delete_book</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft22.1')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft22.1" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft22.1').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_merge_books_list.py", line 59, in test_delete_book
self.assertTrue(self.check_element_on_page((By.ID, "flash_warning")))
AssertionError: False is not true</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt22.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestMergeBooksList - test_merge_book</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestOAuthLogin</td>
<td class="text-center">2</td>
<td class="text-center">2</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c23', 2)">Detail</a>
</td>
</tr>
<tr id='pt23.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOAuthLogin - test_oauth_about</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt23.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOAuthLogin - test_visible_oauth</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestOPDSFeed</td>
<td class="text-center">22</td>
<td class="text-center">22</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c24', 22)">Detail</a>
</td>
</tr>
<tr id='pt24.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_author</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_books</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_calibre_companion</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_cover</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_download_book</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_formats</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_guest_user</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_hot</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_language</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_non_admin</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_publisher</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.13' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_random</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.14' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_ratings</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.15' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_read_unread</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.16' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_search</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.17' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_series</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.18' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_shelf_access</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.19' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_tags</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.20' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_top_rated</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.21' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_opds_unicode_user</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt24.22' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestOPDSFeed - test_recently_added</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestUploadPDF</td>
<td class="text-center">1</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c25', 1)">Detail</a>
</td>
</tr>
<tr id='pt25.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUploadPDF - test_upload_invalid_pdf</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestReader</td>
<td class="text-center">5</td>
<td class="text-center">5</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c26', 5)">Detail</a>
</td>
</tr>
<tr id='pt26.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestReader - test_comic_reader</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt26.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestReader - test_epub_reader</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt26.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestReader - test_pdf_reader</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt26.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestReader - test_sound_listener</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt26.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestReader - test_txt_reader</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestRegister</td>
<td class="text-center">8</td>
<td class="text-center">8</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c27', 8)">Detail</a>
</td>
</tr>
<tr id='pt27.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_forgot_password</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt27.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_illegal_email</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt27.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_limit_domain</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt27.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_register_no_server</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt27.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_registering_only_email</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt27.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_registering_user</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt27.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_registering_user_fail</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt27.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestRegister - test_user_change_password</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="skipClass">
<td>TestShelf</td>
<td class="text-center">12</td>
<td class="text-center">11</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">
<a onclick="showClassDetail('c28', 12)">Detail</a>
</td>
</tr>
<tr id='pt28.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_add_shelf_from_search</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt28.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_adv_search_shelf</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt28.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_arrange_shelf</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt28.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_delete_book_of_shelf</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt28.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_private_shelf</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt28.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_public_private_shelf</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt28.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_public_shelf</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt28.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_rename_shelf</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt28.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_shelf_action_non_shelf_edit_role</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt28.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_shelf_anonymous</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="st28.11" class="none bg-warning">
<td>
<div class='testcase'>TestShelf - test_shelf_database_change</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st28.11')">SKIP</a>
</div>
<!--css div popup start-->
<div id="div_st28.11" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_st28.11').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Change Database Not Implemented</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt28.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestShelf - test_shelf_long_name</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="skipClass">
<td>TestUpdater</td>
<td class="text-center">8</td>
<td class="text-center">7</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">
<a onclick="showClassDetail('c29', 8)">Detail</a>
</td>
</tr>
<tr id='pt29.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUpdater - test_check_update_nightly_errors</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt29.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUpdater - test_check_update_nightly_request_errors</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt29.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUpdater - test_check_update_stable_errors</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt29.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUpdater - test_check_update_stable_versions</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt29.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUpdater - test_perform_update</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt29.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUpdater - test_perform_update_stable_errors</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="st29.7" class="none bg-warning">
<td>
<div class='testcase'>TestUpdater - test_perform_update_timeout</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st29.7')">SKIP</a>
</div>
<!--css div popup start-->
<div id="div_st29.7" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_st29.7').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Takes too long</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt29.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUpdater - test_reconnect_database</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="errorClass">
<td>TestUserList</td>
<td class="text-center">11</td>
<td class="text-center">2</td>
<td class="text-center">6</td>
<td class="text-center">2</td>
<td class="text-center">1</td>
<td class="text-center">
<a onclick="showClassDetail('c30', 11)">Detail</a>
</td>
</tr>
<tr id="ft30.1" class="none bg-danger">
<td>
<div class='testcase'>TestUserList - test_list_visibility</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft30.1')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft30.1" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft30.1').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_user_list.py", line 103, in test_list_visibility
self.assertEqual(32, len(ul['column_elements']))
AssertionError: 32 != 33</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="ft30.2" class="none bg-danger">
<td>
<div class='testcase'>TestUserList - test_user_list_admin_role</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft30.2')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft30.2" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft30.2').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_user_list.py", line 251, in test_user_list_admin_role
self.assertTrue(ul['table'][0]['role_Admin']['element'].is_selected())
AssertionError: False is not true</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="st30.3" class="none bg-warning">
<td>
<div class='testcase'>TestUserList - test_user_list_denied_tags</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_st30.3')">SKIP</a>
</div>
<!--css div popup start-->
<div id="div_st30.3" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_st30.3').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Not Implemented</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="ft30.4" class="none bg-danger">
<td>
<div class='testcase'>TestUserList - test_user_list_download_role</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft30.4')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft30.4" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft30.4').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_user_list.py", line 267, in test_user_list_download_role
self.assertFalse(ul['table'][1]['role_Download']['element'].is_selected())
AssertionError: True is not false</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="ft30.5" class="none bg-danger">
<td>
<div class='testcase'>TestUserList - test_user_list_edit_button</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft30.5')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft30.5" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft30.5').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_user_list.py", line 90, in test_user_list_edit_button
self.assertEqual("3_no", ul['table'][0]['Username']['text'])
AssertionError: '3_no' != '2_no'
- 3_no
? ^
+ 2_no
? ^</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="et30.6" class="none bg-info">
<td>
<div class='testcase'>TestUserList - test_user_list_edit_email</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et30.6')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et30.6" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_et30.6').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_user_list.py", line 182, in test_user_list_edit_email
self.assertTrue("existing account" in self.check_element_on_page((By.XPATH,
AttributeError: 'bool' object has no attribute 'text'</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt30.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserList - test_user_list_edit_kindle</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="ft30.8" class="none bg-danger">
<td>
<div class='testcase'>TestUserList - test_user_list_edit_language</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft30.8')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft30.8" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft30.8').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_user_list.py", line 235, in test_user_list_edit_language
self.assertEqual("English", ul['table'][1]['Locale']['element'].text)
AssertionError: 'English' != 'German'
- English
+ German</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt30.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserList - test_user_list_edit_locale</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="et30.10" class="none bg-info">
<td>
<div class='testcase'>TestUserList - test_user_list_edit_name</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et30.10')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et30.10" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_et30.10').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_user_list.py", line 157, in test_user_list_edit_name
self.assertTrue("already taken" in self.check_element_on_page((By.XPATH,
AttributeError: 'bool' object has no attribute 'text'</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="ft30.11" class="none bg-danger">
<td>
<div class='testcase'>TestUserList - test_user_list_edit_visiblility</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft30.11')">FAIL</a>
</div>
<!--css div popup start-->
<div id="div_ft30.11" class="popup_window test_output" style="display:none;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus='this.blur();'
onclick='document.getElementById('div_ft30.11').style.display='none'"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last):
File "/home/ozzie/Development/calibre-web-test/test/test_user_list.py", line 290, in test_user_list_edit_visiblility
self.assertFalse(ul['table'][4]['Show category selection']['element'].is_selected())
AssertionError: True is not false</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="su" class="passClass">
<td>TestUserLoad</td>
<td class="text-center">1</td>
<td class="text-center">1</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c31', 1)">Detail</a>
</td>
</tr>
<tr id='pt31.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserLoad - test_user_change_vis</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestUserTemplate</td>
<td class="text-center">21</td>
<td class="text-center">21</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c32', 21)">Detail</a>
</td>
</tr>
<tr id='pt32.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_allow_column_restriction</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_allow_tag_restriction</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_archived_format_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_author_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_best_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_category_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_deny_column_restriction</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_deny_tag_restriction</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_detail_random_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_download_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_format_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_hot_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.13' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_language_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.14' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_limit_book_languages</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.15' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_list_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.16' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_publisher_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.17' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_random_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.18' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_read_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.19' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_recent_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.20' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_series_user_template</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt32.21' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestUserTemplate - test_ui_language_settings</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestCalibreWebVisibilitys</td>
<td class="text-center">33</td>
<td class="text-center">33</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c33', 33)">Detail</a>
</td>
</tr>
<tr id='pt33.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_about</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_SMTP_Settings</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_add_user</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_password</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_archived</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_authors</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_category</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_file_formats</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_hot</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_language</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_publisher</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_random</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.13' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_rated</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.14' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_rating</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.15' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_read</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.16' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_admin_change_visibility_series</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.17' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_allow_columns</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.18' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_allow_tags</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.19' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_archive_books</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.20' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_authors_max_settings</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.21' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_change_title</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.22' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_checked_logged_in</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.23' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_hide_custom_column</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.24' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_link_column_to_read_status</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.25' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_random_books_available</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.26' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_restrict_columns</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.27' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_restrict_tags</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.28' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_save_views_recent</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.29' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_search_functions</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.30' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_search_order</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.31' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_search_string</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.32' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_user_email_available</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt33.33' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreWebVisibilitys - test_user_visibility_sidebar</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id="su" class="passClass">
<td>TestCalibreHelper</td>
<td class="text-center">16</td>
<td class="text-center">16</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">0</td>
<td class="text-center">
<a onclick="showClassDetail('c34', 16)">Detail</a>
</td>
</tr>
<tr id='pt34.1' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_author_sort</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.2' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_author_sort_comma</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.3' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_author_sort_junior</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.4' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_author_sort_oneword</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.5' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_author_sort_roman</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.6' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_check_Limit_Length</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.7' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_check_char_replacement</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.8' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_check_chinese_Characters</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.9' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_check_deg_eur_replacement</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.10' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_check_doubleS</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.11' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_check_finish_Dot</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.12' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_check_high23</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.13' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_check_umlauts</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.14' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_random_password</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.15' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_split_authors</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt34.16' class='hiddenRow bg-success'>
<td>
<div class='testcase'>TestCalibreHelper - test_whitespaces</div>
</td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='total_row' class="text-center bg-grey">
<td>Total</td>
<td>322</td>
<td>298</td>
<td>12</td>
<td>4</td>
<td>8</td>
<td>&nbsp;</td>
</tr>
</table>
<div class="panel-group">
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a class="accordion-toggle" data-toggle="collapse" href="#collapseOne">
<span class="glyphicon glyphicon-plus"></span>
Tested environment
</a>
</h4>
</div>
<div id="collapseOne" class="panel-collapse collapse">
<div class="panel-body">
<table id="libs" class="table">
<thead>
<tr>
<th>Program library</th>
<th>Installed Version</th>
<th>Test class</th>
</tr>
</thead>
<tbody>
<tr>
<th>Platform</th>
<td>Linux 5.8.0-48-generic #54~20.04.1-Ubuntu SMP Sat Mar 20 13:40:25 UTC 2021 x86_64 x86_64</td>
<td>Basic</td>
</tr>
<tr>
<th>Python</th>
<td>3.8.5</td>
<td>Basic</td>
</tr>
<tr>
<th>Babel</th>
<td>2.8.1</td>
<td>Basic</td>
</tr>
<tr>
<th>backports-abc</th>
<td>0.5</td>
<td>Basic</td>
</tr>
<tr>
<th>Flask</th>
<td>1.1.2</td>
<td>Basic</td>
</tr>
<tr>
<th>Flask-Babel</th>
<td>2.0.0</td>
<td>Basic</td>
</tr>
<tr>
<th>Flask-Login</th>
<td>0.5.0</td>
<td>Basic</td>
</tr>
<tr>
<th>Flask-Principal</th>
<td>0.4.0</td>
<td>Basic</td>
</tr>
<tr>
<th>iso-639</th>
<td>0.4.5</td>
<td>Basic</td>
</tr>
<tr>
<th>Jinja2</th>
<td>2.11.3</td>
<td>Basic</td>
</tr>
<tr>
<th>PyPDF3</th>
<td>1.0.3</td>
<td>Basic</td>
</tr>
<tr>
<th>pytz</th>
<td>2021.1</td>
<td>Basic</td>
</tr>
<tr>
<th>requests</th>
<td>2.24.0</td>
<td>Basic</td>
</tr>
<tr>
<th>singledispatch</th>
<td>3.4.0.4</td>
<td>Basic</td>
</tr>
<tr>
<th>six</th>
<td>1.15.0</td>
<td>Basic</td>
</tr>
<tr>
<th>SQLAlchemy</th>
<td>1.3.24</td>
<td>Basic</td>
</tr>
<tr>
<th>tornado</th>
<td>6.1</td>
<td>Basic</td>
</tr>
<tr>
<th>Unidecode</th>
<td>1.1.2</td>
<td>Basic</td>
</tr>
<tr>
<th>Wand</th>
<td>0.6.6</td>
<td>Basic</td>
</tr>
<tr>
<th>Werkzeug</th>
<td>1.0.1</td>
<td>Basic</td>
</tr>
<tr>
<th>google-api-python-client</th>
<td>2.1.0</td>
<td>TestEbookConvertCalibreGDrive</td>
</tr>
<tr>
<th>httplib2</th>
<td>0.19.1</td>
<td>TestEbookConvertCalibreGDrive</td>
</tr>
<tr>
<th>lxml</th>
<td>4.6.3</td>
<td>TestEbookConvertCalibreGDrive</td>
</tr>
<tr>
<th>oauth2client</th>
<td>4.1.3</td>
<td>TestEbookConvertCalibreGDrive</td>
</tr>
<tr>
<th>PyDrive2</th>
<td>1.8.1</td>
<td>TestEbookConvertCalibreGDrive</td>
</tr>
<tr>
<th>PyYAML</th>
<td>5.4.1</td>
<td>TestEbookConvertCalibreGDrive</td>
</tr>
<tr>
<th>google-api-python-client</th>
<td>2.1.0</td>
<td>TestEbookConvertGDriveKepubify</td>
</tr>
<tr>
<th>httplib2</th>
<td>0.19.1</td>
<td>TestEbookConvertGDriveKepubify</td>
</tr>
<tr>
<th>lxml</th>
<td>4.6.3</td>
<td>TestEbookConvertGDriveKepubify</td>
</tr>
<tr>
<th>oauth2client</th>
<td>4.1.3</td>
<td>TestEbookConvertGDriveKepubify</td>
</tr>
<tr>
<th>PyDrive2</th>
<td>1.8.1</td>
<td>TestEbookConvertGDriveKepubify</td>
</tr>
<tr>
<th>PyYAML</th>
<td>5.4.1</td>
<td>TestEbookConvertGDriveKepubify</td>
</tr>
<tr>
<th>comicapi</th>
<td>2.2.0</td>
<td>TestEditAdditionalBooks</td>
</tr>
<tr>
<th>lxml</th>
<td>4.6.3</td>
<td>TestEditAdditionalBooks</td>
</tr>
<tr>
<th>rarfile</th>
<td>4.0</td>
<td>TestEditAdditionalBooks</td>
</tr>
<tr>
<th>lxml</th>
<td>4.6.3</td>
<td>TestEditBooks</td>
</tr>
<tr>
<th>google-api-python-client</th>
<td>2.1.0</td>
<td>TestEditBooksOnGdrive</td>
</tr>
<tr>
<th>httplib2</th>
<td>0.19.1</td>
<td>TestEditBooksOnGdrive</td>
</tr>
<tr>
<th>lxml</th>
<td>4.6.3</td>
<td>TestEditBooksOnGdrive</td>
</tr>
<tr>
<th>oauth2client</th>
<td>4.1.3</td>
<td>TestEditBooksOnGdrive</td>
</tr>
<tr>
<th>PyDrive2</th>
<td>1.8.1</td>
<td>TestEditBooksOnGdrive</td>
</tr>
<tr>
<th>PyYAML</th>
<td>5.4.1</td>
<td>TestEditBooksOnGdrive</td>
</tr>
<tr>
<th>google-api-python-client</th>
<td>2.1.0</td>
<td>TestSetupGdrive</td>
</tr>
<tr>
<th>httplib2</th>
<td>0.19.1</td>
<td>TestSetupGdrive</td>
</tr>
<tr>
<th>oauth2client</th>
<td>4.1.3</td>
<td>TestSetupGdrive</td>
</tr>
<tr>
<th>PyDrive2</th>
<td>1.8.1</td>
<td>TestSetupGdrive</td>
</tr>
<tr>
<th>PyYAML</th>
<td>5.4.1</td>
<td>TestSetupGdrive</td>
</tr>
<tr>
<th>goodreads</th>
<td>0.3.2</td>
<td>TestGoodreads</td>
</tr>
<tr>
<th>python-Levenshtein</th>
<td>0.12.2</td>
<td>TestGoodreads</td>
</tr>
<tr>
<th>jsonschema</th>
<td>3.2.0</td>
<td>TestKoboSync</td>
</tr>
<tr>
<th>Flask-SimpleLDAP</th>
<td>1.4.0</td>
<td>TestLdapLogin</td>
</tr>
<tr>
<th>jsonschema</th>
<td>3.2.0</td>
<td>TestLdapLogin</td>
</tr>
<tr>
<th>python-ldap</th>
<td>3.3.1</td>
<td>TestLdapLogin</td>
</tr>
<tr>
<th>Flask-Dance</th>
<td>4.0.0</td>
<td>TestOAuthLogin</td>
</tr>
<tr>
<th>SQLAlchemy-Utils</th>
<td>0.37.0</td>
<td>TestOAuthLogin</td>
</tr>
<tr>
<th>lxml</th>
<td>4.6.3</td>
<td>TestUploadPDF</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<script>
drawCircle(298, 12, 4, 8);
</script>
</div>
<footer>
<div id='foter' class="text-center">
<p>Made with HTMLTestRunner from https://github.com/oldani/HtmlTestRunner</p>
</div>
</footer>
</body>
</html>