1
0
mirror of https://github.com/janeczku/calibre-web synced 2024-12-18 06:00:32 +00:00

Tie visibility of upload buttons to upload right only

This commit is contained in:
Ozzie Isaacs 2021-11-24 17:35:09 +01:00
parent ec7c2db971
commit 7f9da94a18
5 changed files with 340 additions and 164 deletions

View File

@ -67,7 +67,7 @@ log = logger.create()
def upload_required(f): def upload_required(f):
@wraps(f) @wraps(f)
def inner(*args, **kwargs): def inner(*args, **kwargs):
if current_user.role_upload() or current_user.role_admin(): if current_user.role_upload():
return f(*args, **kwargs) return f(*args, **kwargs)
abort(403) abort(403)

View File

@ -98,8 +98,7 @@
<label for="rating">{{_('Rating')}}</label> <label for="rating">{{_('Rating')}}</label>
<input type="number" name="rating" id="rating" class="rating input-lg" data-clearable="" value="{% if book.ratings %}{{(book.ratings[0].rating / 2)|int}}{% endif %}"> <input type="number" name="rating" id="rating" class="rating input-lg" data-clearable="" value="{% if book.ratings %}{{(book.ratings[0].rating / 2)|int}}{% endif %}">
</div> </div>
{% if g.user.role_upload() or g.user.role_admin()%} {% if g.user.role_upload() and g.allow_upload %}
{% if g.allow_upload %}
<div class="form-group"> <div class="form-group">
<label for="cover_url">{{_('Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)')}}</label> <label for="cover_url">{{_('Fetch Cover from URL (JPEG - Image will be downloaded and stored in database)')}}</label>
<input type="text" class="form-control" name="cover_url" id="cover_url" value=""> <input type="text" class="form-control" name="cover_url" id="cover_url" value="">
@ -109,7 +108,6 @@
<div class="upload-cover-input-text" id="upload-cover"></div> <div class="upload-cover-input-text" id="upload-cover"></div>
<input id="btn-upload-cover" name="btn-upload-cover" type="file" accept=".jpg, .jpeg, .png, .webp"> <input id="btn-upload-cover" name="btn-upload-cover" type="file" accept=".jpg, .jpeg, .png, .webp">
</div> </div>
{% endif %}
{% endif %} {% endif %}
<label for="pubdate">{{_('Published Date')}}</label> <label for="pubdate">{{_('Published Date')}}</label>
<div class="form-group input-group"> <div class="form-group input-group">
@ -197,14 +195,12 @@
</div> </div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if g.user.role_upload() or g.user.role_admin()%} {% if g.user.role_upload() and g.allow_upload %}
{% if g.allow_upload %}
<div role="group" aria-label="Upload new book format"> <div role="group" aria-label="Upload new book format">
<label class="btn btn-primary btn-file" for="btn-upload-format">{{ _('Upload Format') }}</label> <label class="btn btn-primary btn-file" for="btn-upload-format">{{ _('Upload Format') }}</label>
<div class="upload-format-input-text" id="upload-format"></div> <div class="upload-format-input-text" id="upload-format"></div>
<input id="btn-upload-format" name="btn-upload-format" type="file"> <input id="btn-upload-format" name="btn-upload-format" type="file">
</div> </div>
{% endif %}
{% endif %} {% endif %}
<div class="checkbox"> <div class="checkbox">

View File

@ -105,7 +105,7 @@
</div> </div>
<div class="form-group"> <div class="form-group">
<input type="checkbox" id="config_uploading" data-control="upload_settings" name="config_uploading" {% if config.config_uploading %}checked{% endif %}> <input type="checkbox" id="config_uploading" data-control="upload_settings" name="config_uploading" {% if config.config_uploading %}checked{% endif %}>
<label for="config_uploading">{{_('Enable Uploads')}}</label> <label for="config_uploading">{{_('Enable Uploads')}} {{_('(Please ensure users having also upload rights)')}}</label>
</div> </div>
<div data-related="upload_settings"> <div data-related="upload_settings">
<div class="form-group"> <div class="form-group">

View File

@ -58,8 +58,7 @@
{% endif %} {% endif %}
<ul class="nav navbar-nav navbar-right" id="main-nav"> <ul class="nav navbar-nav navbar-right" id="main-nav">
{% if g.user.is_authenticated or g.allow_anonymous %} {% if g.user.is_authenticated or g.allow_anonymous %}
{% if g.user.role_upload() or g.user.role_admin()%} {% if g.user.role_upload() and g.allow_upload %}
{% if g.allow_upload %}
<li> <li>
<form id="form-upload" class="navbar-form" action="{{ url_for('editbook.upload') }}" data-title="{{_('Uploading...')}}" data-footer="{{_('Close')}}" data-failed="{{_('Error')}}" data-message="{{_('Upload done, processing, please wait...')}}" method="post" enctype="multipart/form-data"> <form id="form-upload" class="navbar-form" action="{{ url_for('editbook.upload') }}" data-title="{{_('Uploading...')}}" data-footer="{{_('Close')}}" data-failed="{{_('Error')}}" data-message="{{_('Upload done, processing, please wait...')}}" method="post" enctype="multipart/form-data">
<input type="hidden" name="csrf_token" value="{{ csrf_token() }}"> <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
@ -69,7 +68,6 @@
</div> </div>
</form> </form>
</li> </li>
{% endif %}
{% endif %} {% endif %}
{% if not g.user.is_anonymous %} {% if not g.user.is_anonymous %}
<li><a id="top_tasks" href="{{url_for('web.get_tasks_status')}}"><span class="glyphicon glyphicon-tasks"></span> <span class="hidden-sm">{{_('Tasks')}}</span></a></li> <li><a id="top_tasks" href="{{url_for('web.get_tasks_status')}}"><span class="glyphicon glyphicon-tasks"></span> <span class="hidden-sm">{{_('Tasks')}}</span></a></li>

View File

@ -37,20 +37,20 @@
<div class="row"> <div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3" style="margin-top:50px;"> <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-11-22 21:51:33</p> <p class='text-justify attribute'><strong>Start Time: </strong>2021-11-24 20:41:04</p>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3"> <div class="col-xs-6 col-md-6 col-sm-offset-3">
<p class='text-justify attribute'><strong>Stop Time: </strong>2021-11-23 01:35:04</p> <p class='text-justify attribute'><strong>Stop Time: </strong>2021-11-25 00:24:57</p>
</div> </div>
</div> </div>
<div class="row"> <div class="row">
<div class="col-xs-6 col-md-6 col-sm-offset-3"> <div class="col-xs-6 col-md-6 col-sm-offset-3">
<p class='text-justify attribute'><strong>Duration: </strong>3h 2 min</p> <p class='text-justify attribute'><strong>Duration: </strong>3h 3 min</p>
</div> </div>
</div> </div>
</div> </div>
@ -102,12 +102,12 @@
</tr> </tr>
<tr id="su" class="errorClass"> <tr id="su" class="passClass">
<td>TestAnonymous</td> <td>TestAnonymous</td>
<td class="text-center">13</td> <td class="text-center">13</td>
<td class="text-center">12</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">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c1', 13)">Detail</a> <a onclick="showClassDetail('c1', 13)">Detail</a>
@ -224,31 +224,11 @@
<tr id="et1.13" class="none bg-info"> <tr id='pt1.13' class='hiddenRow bg-success'>
<td> <td>
<div class='testcase'>TestAnonymous - test_guest_visibility_sidebar</div> <div class='testcase'>TestAnonymous - test_guest_visibility_sidebar</div>
</td> </td>
<td colspan='6'> <td colspan='6' align='center'>PASS</td>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et1.13')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et1.13" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et1.13').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 &#34;/home/ozzie/Development/calibre-web-test/test/test_anonymous.py&#34;, line 143, in test_guest_visibility_sidebar
self.assertFtest_edit_languagealse(self.check_element_on_page((By.ID, &#34;nav_rand&#34;)))
AttributeError: &#39;TestAnonymous&#39; object has no attribute &#39;assertFtest_edit_languagealse&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
@ -901,12 +881,12 @@ AttributeError: &#39;TestAnonymous&#39; object has no attribute &#39;assertFtest
<tr id="su" class="failClass"> <tr id="su" class="errorClass">
<td>TestEditBooks</td> <td>TestEditBooks</td>
<td class="text-center">35</td> <td class="text-center">35</td>
<td class="text-center">33</td> <td class="text-center">26</td>
<td class="text-center">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">8</td>
<td class="text-center">1</td> <td class="text-center">1</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c11', 35)">Detail</a> <a onclick="showClassDetail('c11', 35)">Detail</a>
@ -1166,98 +1146,26 @@ AttributeError: &#39;TestAnonymous&#39; object has no attribute &#39;assertFtest
<tr id='pt11.27' class='hiddenRow bg-success'> <tr id="et11.27" class="none bg-info">
<td> <td>
<div class='testcase'>TestEditBooks - test_upload_book_cbr</div> <div class='testcase'>TestEditBooks - test_upload_book_cbr</div>
</td> </td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt11.28' 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='pt11.29' 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='pt11.30' 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='pt11.31' 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='pt11.32' 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='pt11.33' 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='pt11.34' 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="ft11.35" class="none bg-danger">
<td>
<div class='testcase'>TestEditBooks - test_upload_cover_hdd</div>
</td>
<td colspan='6'> <td colspan='6'>
<div class="text-center"> <div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft11.35')">FAIL</a> <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et11.27')">ERROR</a>
</div> </div>
<!--css div popup start--> <!--css div popup start-->
<div id="div_ft11.35" class="popup_window test_output" style="display:block;"> <div id="div_et11.27" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'> <div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();" <button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft11.35').style.display='none'"><span onclick="document.getElementById('div_et11.27').style.display='none'"><span
aria-hidden="true">&times;</span></button> aria-hidden="true">&times;</span></button>
</div> </div>
<div class="text-left pull-left"> <div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last): <pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_books.py&#34;, line 783, in test_upload_cover_hdd File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_books.py&#34;, line 1011, in test_upload_book_cbr
self.assertGreater(diff(&#39;original.png&#39;, &#39;jpeg.png&#39;, delete_diff_file=True), 0.02) upload.send_keys(upload_file)
AssertionError: 0.0 not greater than 0.02</pre> AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
@ -1266,6 +1174,218 @@ AssertionError: 0.0 not greater than 0.02</pre>
</tr> </tr>
<tr id="et11.28" class="none bg-info">
<td>
<div class='testcase'>TestEditBooks - test_upload_book_cbt</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et11.28')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et11.28" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et11.28').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 &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_books.py&#34;, line 986, in test_upload_book_cbt
upload.send_keys(upload_file)
AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="et11.29" class="none bg-info">
<td>
<div class='testcase'>TestEditBooks - test_upload_book_cbz</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et11.29')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et11.29" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et11.29').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 &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_books.py&#34;, line 961, in test_upload_book_cbz
upload.send_keys(upload_file)
AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="et11.30" class="none bg-info">
<td>
<div class='testcase'>TestEditBooks - test_upload_book_epub</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et11.30')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et11.30" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et11.30').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 &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_books.py&#34;, line 923, in test_upload_book_epub
upload.send_keys(upload_file)
AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="et11.31" class="none bg-info">
<td>
<div class='testcase'>TestEditBooks - test_upload_book_fb2</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et11.31')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et11.31" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et11.31').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 &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_books.py&#34;, line 848, in test_upload_book_fb2
upload.send_keys(upload_file)
AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="et11.32" class="none bg-info">
<td>
<div class='testcase'>TestEditBooks - test_upload_book_lit</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et11.32')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et11.32" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et11.32').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 &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_books.py&#34;, line 873, in test_upload_book_lit
upload.send_keys(upload_file)
AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="et11.33" class="none bg-info">
<td>
<div class='testcase'>TestEditBooks - test_upload_book_mobi</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et11.33')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et11.33" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et11.33').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 &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_books.py&#34;, line 898, in test_upload_book_mobi
upload.send_keys(upload_file)
AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id="et11.34" class="none bg-info">
<td>
<div class='testcase'>TestEditBooks - test_upload_book_pdf</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et11.34')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et11.34" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et11.34').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 &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_books.py&#34;, line 823, in test_upload_book_pdf
upload.send_keys(upload_file)
AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt11.35' 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="passClass"> <tr id="su" class="passClass">
@ -1445,13 +1565,13 @@ AssertionError: 0.0 not greater than 0.02</pre>
<tr id="su" class="failClass"> <tr id="su" class="errorClass">
<td>TestEditBooksOnGdrive</td> <td>TestEditBooksOnGdrive</td>
<td class="text-center">20</td> <td class="text-center">20</td>
<td class="text-center">18</td> <td class="text-center">17</td>
<td class="text-center">1</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"> <td class="text-center">
<a onclick="showClassDetail('c13', 20)">Detail</a> <a onclick="showClassDetail('c13', 20)">Detail</a>
</td> </td>
@ -1603,44 +1723,26 @@ AssertionError: 0.0 not greater than 0.02</pre>
<tr id='pt13.17' class='hiddenRow bg-success'> <tr id="et13.17" class="none bg-info">
<td> <td>
<div class='testcase'>TestEditBooksOnGdrive - test_upload_book_epub</div> <div class='testcase'>TestEditBooksOnGdrive - test_upload_book_epub</div>
</td> </td>
<td colspan='6' align='center'>PASS</td>
</tr>
<tr id='pt13.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="ft13.19" class="none bg-danger">
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_upload_cover_hdd</div>
</td>
<td colspan='6'> <td colspan='6'>
<div class="text-center"> <div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft13.19')">FAIL</a> <a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et13.17')">ERROR</a>
</div> </div>
<!--css div popup start--> <!--css div popup start-->
<div id="div_ft13.19" class="popup_window test_output" style="display:block;"> <div id="div_et13.17" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'> <div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();" <button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_ft13.19').style.display='none'"><span onclick="document.getElementById('div_et13.17').style.display='none'"><span
aria-hidden="true">&times;</span></button> aria-hidden="true">&times;</span></button>
</div> </div>
<div class="text-left pull-left"> <div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last): <pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py&#34;, line 774, in test_upload_cover_hdd File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py&#34;, line 844, in test_upload_book_epub
self.assertGreater(diff(&#39;original.png&#39;, &#39;jpeg.png&#39;, delete_diff_file=True), 0.02) upload.send_keys(upload_file)
AssertionError: 0.0 not greater than 0.02</pre> AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
@ -1650,6 +1752,44 @@ AssertionError: 0.0 not greater than 0.02</pre>
<tr id="et13.18" class="none bg-info">
<td>
<div class='testcase'>TestEditBooksOnGdrive - test_upload_book_lit</div>
</td>
<td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et13.18')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et13.18" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et13.18').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 &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py&#34;, line 820, in test_upload_book_lit
upload.send_keys(upload_file)
AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr>
<tr id='pt13.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="ft13.20" class="none bg-danger"> <tr id="ft13.20" class="none bg-danger">
<td> <td>
<div class='testcase'>TestEditBooksOnGdrive - test_watch_metadata</div> <div class='testcase'>TestEditBooksOnGdrive - test_watch_metadata</div>
@ -1667,9 +1807,9 @@ AssertionError: 0.0 not greater than 0.02</pre>
</div> </div>
<div class="text-left pull-left"> <div class="text-left pull-left">
<pre class="text-left">Traceback (most recent call last): <pre class="text-left">Traceback (most recent call last):
File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py&#34;, line 928, in test_watch_metadata File &#34;/home/ozzie/Development/calibre-web-test/test/test_edit_ebooks_gdrive.py&#34;, line 929, in test_watch_metadata
self.assertNotIn(&#39;series&#39;, book) self.assertNotIn(&#39;series&#39;, book)
AssertionError: &#39;series&#39; unexpectedly found in {&#39;id&#39;: 5, &#39;reader&#39;: [], &#39;title&#39;: &#39;testbook&#39;, &#39;author&#39;: [&#39;John Döe&#39;], &#39;rating&#39;: 0, &#39;languages&#39;: [&#39;English&#39;], &#39;identifier&#39;: [], &#39;cover&#39;: &#39;/cover/5?edit=a92e572d-f9d5-45d0-a088-9751aaed41ca&#39;, &#39;tag&#39;: [], &#39;publisher&#39;: [&#39;Randomhäus&#39;], &#39;pubdate&#39;: &#39;Jan 19, 2017&#39;, &#39;comment&#39;: &#39;Lorem ipsum dolor sit amet, consectetuer adipiscing elit.Aenean commodo ligula eget dolor.Aenean massa.Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.Nulla consequat massa quis enim.Donec pede justo, fringilla vel, aliquet nec, vulputate&#39;, &#39;add_shelf&#39;: [], &#39;del_shelf&#39;: [], &#39;edit_enable&#39;: True, &#39;kindle&#39;: None, &#39;kindlebtn&#39;: None, &#39;download&#39;: [&#39;EPUB (6.7 kB)&#39;], &#39;read&#39;: False, &#39;archived&#39;: False, &#39;series_all&#39;: &#39;Book 1 of test&#39;, &#39;series_index&#39;: &#39;1&#39;, &#39;series&#39;: &#39;test&#39;, &#39;cust_columns&#39;: []}</pre> AssertionError: &#39;series&#39; unexpectedly found in {&#39;id&#39;: 5, &#39;reader&#39;: [], &#39;title&#39;: &#39;testbook&#39;, &#39;author&#39;: [&#39;John Döe&#39;], &#39;rating&#39;: 0, &#39;languages&#39;: [&#39;English&#39;], &#39;identifier&#39;: [], &#39;cover&#39;: &#39;/cover/5?edit=37b525ac-f7df-4630-8811-e9f937dd6c89&#39;, &#39;tag&#39;: [], &#39;publisher&#39;: [&#39;Randomhäus&#39;], &#39;pubdate&#39;: &#39;Jan 19, 2017&#39;, &#39;comment&#39;: &#39;Lorem ipsum dolor sit amet, consectetuer adipiscing elit.Aenean commodo ligula eget dolor.Aenean massa.Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.Nulla consequat massa quis enim.Donec pede justo, fringilla vel, aliquet nec, vulputate&#39;, &#39;add_shelf&#39;: [], &#39;del_shelf&#39;: [], &#39;edit_enable&#39;: True, &#39;kindle&#39;: None, &#39;kindlebtn&#39;: None, &#39;download&#39;: [&#39;EPUB (6.7 kB)&#39;], &#39;read&#39;: False, &#39;archived&#39;: False, &#39;series_all&#39;: &#39;Book 1 of test&#39;, &#39;series_index&#39;: &#39;1&#39;, &#39;series&#39;: &#39;test&#39;, &#39;cust_columns&#39;: []}</pre>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
@ -1722,12 +1862,12 @@ AssertionError: &#39;series&#39; unexpectedly found in {&#39;id&#39;: 5, &#39;re
<tr id="su" class="passClass"> <tr id="su" class="errorClass">
<td>TestSSL</td> <td>TestSSL</td>
<td class="text-center">7</td> <td class="text-center">7</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">0</td>
<td class="text-center">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c15', 7)">Detail</a> <a onclick="showClassDetail('c15', 7)">Detail</a>
@ -1781,11 +1921,31 @@ AssertionError: &#39;series&#39; unexpectedly found in {&#39;id&#39;: 5, &#39;re
<tr id='pt15.6' class='hiddenRow bg-success'> <tr id="et15.6" class="none bg-info">
<td> <td>
<div class='testcase'>TestSSL - test_email_limit</div> <div class='testcase'>TestSSL - test_email_limit</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et15.6')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et15.6" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et15.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 &#34;/home/ozzie/Development/calibre-web-test/test/test_email_ssl.py&#34;, line 144, in test_email_limit
upload.send_keys(random_file)
AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
@ -2888,12 +3048,12 @@ AssertionError: &#39;series&#39; unexpectedly found in {&#39;id&#39;: 5, &#39;re
<tr id="su" class="passClass"> <tr id="su" class="errorClass">
<td>TestReader</td> <td>TestReader</td>
<td class="text-center">5</td> <td class="text-center">5</td>
<td class="text-center">5</td> <td class="text-center">4</td>
<td class="text-center">0</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center">1</td>
<td class="text-center">0</td> <td class="text-center">0</td>
<td class="text-center"> <td class="text-center">
<a onclick="showClassDetail('c31', 5)">Detail</a> <a onclick="showClassDetail('c31', 5)">Detail</a>
@ -2929,11 +3089,33 @@ AssertionError: &#39;series&#39; unexpectedly found in {&#39;id&#39;: 5, &#39;re
<tr id='pt31.4' class='hiddenRow bg-success'> <tr id="et31.4" class="none bg-info">
<td> <td>
<div class='testcase'>TestReader - test_sound_listener</div> <div class='testcase'>TestReader - test_sound_listener</div>
</td> </td>
<td colspan='6' align='center'>PASS</td> <td colspan='6'>
<div class="text-center">
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et31.4')">ERROR</a>
</div>
<!--css div popup start-->
<div id="div_et31.4" class="popup_window test_output" style="display:block;">
<div class='close_button pull-right'>
<button type="button" class="close" aria-label="Close" onfocus="this.blur();"
onclick="document.getElementById('div_et31.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 &#34;/home/ozzie/Development/calibre-web-test/test/test_reader.py&#34;, line 229, in test_sound_listener
self.sound_test(&#39;music.flac&#39;, &#39;Unknown - music&#39;, &#39;0:02&#39;)
File &#34;/home/ozzie/Development/calibre-web-test/test/test_reader.py&#34;, line 189, in sound_test
upload.send_keys(upload_file)
AttributeError: &#39;bool&#39; object has no attribute &#39;send_keys&#39;</pre>
</div>
<div class="clearfix"></div>
</div>
<!--css div popup end-->
</td>
</tr> </tr>
@ -4268,9 +4450,9 @@ AssertionError: &#39;series&#39; unexpectedly found in {&#39;id&#39;: 5, &#39;re
<tr id='total_row' class="text-center bg-grey"> <tr id='total_row' class="text-center bg-grey">
<td>Total</td> <td>Total</td>
<td>376</td> <td>376</td>
<td>366</td> <td>357</td>
<td>3</td>
<td>1</td> <td>1</td>
<td>12</td>
<td>6</td> <td>6</td>
<td>&nbsp;</td> <td>&nbsp;</td>
</tr> </tr>
@ -4677,7 +4859,7 @@ AssertionError: &#39;series&#39; unexpectedly found in {&#39;id&#39;: 5, &#39;re
</div> </div>
<script> <script>
drawCircle(366, 3, 1, 6); drawCircle(357, 1, 12, 6);
showCase(5); showCase(5);
</script> </script>