mirror of
https://github.com/janeczku/calibre-web
synced 2024-11-27 12:07:22 +00:00
Merge branch 'master' of https://github.com/janeczku/calibre-web
This commit is contained in:
commit
4569188008
14
cps/admin.py
14
cps/admin.py
@ -590,6 +590,8 @@ def load_dialogtexts(element_id):
|
||||
texts["main"] = _('Are you sure you want to change shelf sync behavior for the selected user(s)?')
|
||||
elif element_id == "db_submit":
|
||||
texts["main"] = _('Are you sure you want to change Calibre library location?')
|
||||
elif element_id == "btnfullsync":
|
||||
texts["main"] = _("Are you sure you want delete Calibre-Web's sync database to force a full sync with your Kobo Reader?")
|
||||
return json.dumps(texts)
|
||||
|
||||
|
||||
@ -889,10 +891,18 @@ def list_restriction(res_type, user_id):
|
||||
else:
|
||||
json_dumps = ""
|
||||
js = json.dumps(json_dumps)
|
||||
response = make_response(js) #.replace("'", '"')
|
||||
response = make_response(js)
|
||||
response.headers["Content-Type"] = "application/json; charset=utf-8"
|
||||
return response
|
||||
|
||||
@admi.route("/ajax/fullsync")
|
||||
@login_required
|
||||
def ajax_fullsync():
|
||||
count = ub.session.query(ub.KoboSyncedBooks).filter(current_user.id == ub.KoboSyncedBooks.user_id).delete()
|
||||
message = _("{} sync entries deleted").format(count)
|
||||
ub.session_commit(message)
|
||||
return Response(json.dumps([{"type": "success", "message": message}]), mimetype='application/json')
|
||||
|
||||
|
||||
@admi.route("/ajax/pathchooser/")
|
||||
@login_required
|
||||
@ -1189,13 +1199,13 @@ def _db_configuration_update_helper():
|
||||
# if db changed -> delete shelfs, delete download books, delete read books, kobo sync...
|
||||
ub.session.query(ub.Downloads).delete()
|
||||
ub.session.query(ub.ArchivedBook).delete()
|
||||
ub.session.query(ub.ArchivedBook).delete()
|
||||
ub.session.query(ub.ReadBook).delete()
|
||||
ub.session.query(ub.BookShelf).delete()
|
||||
ub.session.query(ub.Bookmark).delete()
|
||||
ub.session.query(ub.KoboReadingState).delete()
|
||||
ub.session.query(ub.KoboStatistics).delete()
|
||||
ub.session.query(ub.KoboSyncedBooks).delete()
|
||||
ub.session_commit()
|
||||
_config_string(to_save, "config_calibre_dir")
|
||||
calibre_db.update_config(config)
|
||||
if not os.access(os.path.join(config.config_calibre_dir, "metadata.db"), os.W_OK):
|
||||
|
@ -240,14 +240,14 @@ def modify_identifiers(input_identifiers, db_identifiers, db_session):
|
||||
@editbook.route("/ajax/delete/<int:book_id>")
|
||||
@login_required
|
||||
def delete_book_from_details(book_id):
|
||||
return Response(delete_book(book_id, "", True), mimetype='application/json')
|
||||
return Response(delete_book_from_table(book_id, "", True), mimetype='application/json')
|
||||
|
||||
|
||||
@editbook.route("/delete/<int:book_id>", defaults={'book_format': ""})
|
||||
@editbook.route("/delete/<int:book_id>/<string:book_format>")
|
||||
@login_required
|
||||
def delete_book_ajax(book_id, book_format):
|
||||
return delete_book(book_id, book_format, False)
|
||||
return delete_book_from_table(book_id, book_format, False)
|
||||
|
||||
|
||||
def delete_whole_book(book_id, book):
|
||||
@ -317,7 +317,7 @@ def render_delete_book_result(book_format, jsonResponse, warning, book_id):
|
||||
return redirect(url_for('web.index'))
|
||||
|
||||
|
||||
def delete_book(book_id, book_format, jsonResponse):
|
||||
def delete_book_from_table(book_id, book_format, jsonResponse):
|
||||
warning = {}
|
||||
if current_user.role_delete_books():
|
||||
book = calibre_db.get_book(book_id)
|
||||
@ -1254,7 +1254,7 @@ def merge_list_book():
|
||||
element.format,
|
||||
element.uncompressed_size,
|
||||
to_name))
|
||||
delete_book(from_book.id,"", True)
|
||||
delete_book_from_table(from_book.id,"", True)
|
||||
return json.dumps({'success': True})
|
||||
return ""
|
||||
|
||||
|
@ -209,7 +209,7 @@ def HandleSyncRequest():
|
||||
books = calibre_db.session.execute(changed_entries.limit(SYNC_ITEM_LIMIT))
|
||||
else:
|
||||
books = changed_entries.limit(SYNC_ITEM_LIMIT)
|
||||
log.debug("Books to Sync: {}".format(books.count()))
|
||||
log.debug("Books to Sync: {}".format(len(books.all())))
|
||||
for book in books:
|
||||
formats = [data.format for data in book.Books.data]
|
||||
if not 'KEPUB' in formats and config.config_kepubifypath and 'EPUB' in formats:
|
||||
|
@ -85,7 +85,7 @@ class WorkerThread(threading.Thread):
|
||||
def add(cls, user, task):
|
||||
ins = cls.getInstance()
|
||||
ins.num += 1
|
||||
log.debug("Add Task for user: {}: {}".format(user, task))
|
||||
log.debug("Add Task for user: {} - {}".format(user, task))
|
||||
ins.queue.put(QueuedTask(
|
||||
num=ins.num,
|
||||
user=user,
|
||||
|
@ -517,6 +517,7 @@ $(function() {
|
||||
.on("hidden.bs.modal", function() {
|
||||
$(this).find(".modal-body").html("...");
|
||||
$("#config_delete_kobo_token").show();
|
||||
$("#kobo_full_sync").show();
|
||||
});
|
||||
|
||||
$("#config_delete_kobo_token").click(function() {
|
||||
@ -530,6 +531,7 @@ $(function() {
|
||||
url: getPath() + "/kobo_auth/deleteauthtoken/" + value,
|
||||
});
|
||||
$("#config_delete_kobo_token").hide();
|
||||
$("#kobo_full_sync").hide();
|
||||
}
|
||||
);
|
||||
});
|
||||
@ -563,6 +565,33 @@ $(function() {
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
$("#kobo_full_sync").click(function() {
|
||||
confirmDialog(
|
||||
"btnfullsync",
|
||||
"GeneralDeleteModal",
|
||||
$(this).data('value'),
|
||||
function(value){
|
||||
path = getPath() + "/ajax/fullsync"
|
||||
$.ajax({
|
||||
method:"get",
|
||||
url: path,
|
||||
timeout: 900,
|
||||
success:function(data) {
|
||||
data.forEach(function(item) {
|
||||
if (!jQuery.isEmptyObject(item)) {
|
||||
$( ".navbar" ).after( '<div class="row-fluid text-center" >' +
|
||||
'<div id="flash_'+item.type+'" class="alert alert-'+item.type+'">'+item.message+'</div>' +
|
||||
'</div>');
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
|
||||
$("#user_submit").click(function() {
|
||||
this.closest("form").submit();
|
||||
});
|
||||
|
@ -66,6 +66,9 @@
|
||||
<a class="btn btn-default" id="config_create_kobo_token" data-toggle="modal" data-target="#modal_kobo_token" data-remote="false" href="{{ url_for('kobo_auth.generate_auth_token', user_id=content.id) }}">{{_('Create/View')}}</a>
|
||||
<div class="btn btn-danger" id="config_delete_kobo_token" data-value="{{ content.id }}" data-remote="false" {% if not content.remote_auth_token.first() %} style="display: none;" {% endif %}>{{_('Delete')}}</div>
|
||||
</div>
|
||||
<div class="form-group col">
|
||||
<div class="btn btn-default" id="kobo_full_sync" data-value="{{ content.id }}" {% if not content.remote_auth_token.first() %} style="display: none;" {% endif %}>{{_('Force full kobo sync')}}</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="col-sm-6">
|
||||
{% for element in sidebar %}
|
||||
|
@ -37,20 +37,20 @@
|
||||
<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-12-02 06:37:36</p>
|
||||
<p class='text-justify attribute'><strong>Start Time: </strong>2021-12-05 19:18:28</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-12-02 10:15:15</p>
|
||||
<p class='text-justify attribute'><strong>Stop Time: </strong>2021-12-05 22:58:48</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 57 min</p>
|
||||
<p class='text-justify attribute'><strong>Duration: </strong>3h 0 min</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -1858,12 +1858,12 @@
|
||||
|
||||
|
||||
|
||||
<tr id="su" class="errorClass">
|
||||
<tr id="su" class="failClass">
|
||||
<td>TestKoboSync</td>
|
||||
<td class="text-center">11</td>
|
||||
<td class="text-center">6</td>
|
||||
<td class="text-center">4</td>
|
||||
<td class="text-center">1</td>
|
||||
<td class="text-center">2</td>
|
||||
<td class="text-center">9</td>
|
||||
<td class="text-center">0</td>
|
||||
<td class="text-center">0</td>
|
||||
<td class="text-center">
|
||||
<a onclick="showClassDetail('c21', 11)">Detail</a>
|
||||
@ -1872,11 +1872,35 @@
|
||||
|
||||
|
||||
|
||||
<tr id='pt21.1' class='hiddenRow bg-success'>
|
||||
<tr id="ft21.1" class="none bg-danger">
|
||||
<td>
|
||||
<div class='testcase'>TestKoboSync - test_book_download</div>
|
||||
</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_ft21.1')">FAIL</a>
|
||||
</div>
|
||||
<!--css div popup start-->
|
||||
<div id="div_ft21.1" 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_ft21.1').style.display='none'"><span
|
||||
aria-hidden="true">×</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 583, in test_book_download
|
||||
data = self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -1890,26 +1914,30 @@
|
||||
|
||||
|
||||
|
||||
<tr id="et21.3" class="none bg-info">
|
||||
<tr id="ft21.3" class="none bg-danger">
|
||||
<td>
|
||||
<div class='testcase'>TestKoboSync - test_kobo_sync_selected_shelfs</div>
|
||||
</td>
|
||||
<td colspan='6'>
|
||||
<div class="text-center">
|
||||
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et21.3')">ERROR</a>
|
||||
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_ft21.3')">FAIL</a>
|
||||
</div>
|
||||
<!--css div popup start-->
|
||||
<div id="div_et21.3" class="popup_window test_output" style="display:block;">
|
||||
<div id="div_ft21.3" 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_et21.3').style.display='none'"><span
|
||||
onclick="document.getElementById('div_ft21.3').style.display='none'"><span
|
||||
aria-hidden="true">×</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 619, in test_kobo_sync_selected_shelfs
|
||||
self.assertIn("NewTag", data3[2])
|
||||
IndexError: list index out of range</pre>
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 602, in test_kobo_sync_selected_shelfs
|
||||
data = self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
@ -1919,11 +1947,35 @@ IndexError: list index out of range</pre>
|
||||
|
||||
|
||||
|
||||
<tr id='pt21.4' class='hiddenRow bg-success'>
|
||||
<tr id="ft21.4" class="none bg-danger">
|
||||
<td>
|
||||
<div class='testcase'>TestKoboSync - test_kobo_upload_book</div>
|
||||
</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_ft21.4')">FAIL</a>
|
||||
</div>
|
||||
<!--css div popup start-->
|
||||
<div id="div_ft21.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_ft21.4').style.display='none'"><span
|
||||
aria-hidden="true">×</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 652, in test_kobo_upload_book
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -1945,9 +1997,13 @@ IndexError: list index out of range</pre>
|
||||
</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 481, in test_shelves_add_remove_books
|
||||
self.assertEqual(1, len(books))
|
||||
AssertionError: 1 != 0</pre>
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 447, in test_shelves_add_remove_books
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
@ -1974,9 +2030,13 @@ AssertionError: 1 != 0</pre>
|
||||
</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 286, in test_sync_changed_book
|
||||
self.assertEqual(1, len(data))
|
||||
AssertionError: 1 != 2</pre>
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 277, in test_sync_changed_book
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
@ -1995,11 +2055,35 @@ AssertionError: 1 != 2</pre>
|
||||
|
||||
|
||||
|
||||
<tr id='pt21.8' class='hiddenRow bg-success'>
|
||||
<tr id="ft21.8" class="none bg-danger">
|
||||
<td>
|
||||
<div class='testcase'>TestKoboSync - test_sync_reading_state</div>
|
||||
</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_ft21.8')">FAIL</a>
|
||||
</div>
|
||||
<!--css div popup start-->
|
||||
<div id="div_ft21.8" 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_ft21.8').style.display='none'"><span
|
||||
aria-hidden="true">×</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 514, in test_sync_reading_state
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -2021,9 +2105,13 @@ AssertionError: 1 != 2</pre>
|
||||
</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 304, in test_sync_shelf
|
||||
self.assertEqual(1, len(data))
|
||||
AssertionError: 1 != 0</pre>
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 296, in test_sync_shelf
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
@ -2033,11 +2121,35 @@ AssertionError: 1 != 0</pre>
|
||||
|
||||
|
||||
|
||||
<tr id='pt21.10' class='hiddenRow bg-success'>
|
||||
<tr id="ft21.10" class="none bg-danger">
|
||||
<td>
|
||||
<div class='testcase'>TestKoboSync - test_sync_unchanged</div>
|
||||
</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_ft21.10')">FAIL</a>
|
||||
</div>
|
||||
<!--css div popup start-->
|
||||
<div id="div_ft21.10" 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_ft21.10').style.display='none'"><span
|
||||
aria-hidden="true">×</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 242, in test_sync_unchanged
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -2059,9 +2171,13 @@ AssertionError: 1 != 0</pre>
|
||||
</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 270, in test_sync_upload
|
||||
self.assertEqual(1, len(data))
|
||||
AssertionError: 1 != 0</pre>
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 256, in test_sync_upload
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync.py", line 111, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
@ -2072,11 +2188,11 @@ AssertionError: 1 != 0</pre>
|
||||
|
||||
|
||||
|
||||
<tr id="su" class="passClass">
|
||||
<tr id="su" class="failClass">
|
||||
<td>TestKoboSyncBig</td>
|
||||
<td class="text-center">5</td>
|
||||
<td class="text-center">5</td>
|
||||
<td class="text-center">0</td>
|
||||
<td class="text-center">1</td>
|
||||
<td class="text-center">4</td>
|
||||
<td class="text-center">0</td>
|
||||
<td class="text-center">0</td>
|
||||
<td class="text-center">
|
||||
@ -2095,38 +2211,134 @@ AssertionError: 1 != 0</pre>
|
||||
|
||||
|
||||
|
||||
<tr id='pt22.2' class='hiddenRow bg-success'>
|
||||
<tr id="ft22.2" class="none bg-danger">
|
||||
<td>
|
||||
<div class='testcase'>TestKoboSyncBig - test_kobo_sync_selected_shelfs</div>
|
||||
</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_ft22.2')">FAIL</a>
|
||||
</div>
|
||||
<!--css div popup start-->
|
||||
<div id="div_ft22.2" 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_ft22.2').style.display='none'"><span
|
||||
aria-hidden="true">×</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_big.py", line 260, in test_kobo_sync_selected_shelfs
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 103, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id='pt22.3' class='hiddenRow bg-success'>
|
||||
<tr id="ft22.3" class="none bg-danger">
|
||||
<td>
|
||||
<div class='testcase'>TestKoboSyncBig - test_sync_changed_book</div>
|
||||
</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_ft22.3')">FAIL</a>
|
||||
</div>
|
||||
<!--css div popup start-->
|
||||
<div id="div_ft22.3" 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_ft22.3').style.display='none'"><span
|
||||
aria-hidden="true">×</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_big.py", line 164, in test_sync_changed_book
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 103, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id='pt22.4' class='hiddenRow bg-success'>
|
||||
<tr id="ft22.4" class="none bg-danger">
|
||||
<td>
|
||||
<div class='testcase'>TestKoboSyncBig - test_sync_reading_state</div>
|
||||
</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_ft22.4')">FAIL</a>
|
||||
</div>
|
||||
<!--css div popup start-->
|
||||
<div id="div_ft22.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_ft22.4').style.display='none'"><span
|
||||
aria-hidden="true">×</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_big.py", line 237, in test_sync_reading_state
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 103, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id='pt22.5' class='hiddenRow bg-success'>
|
||||
<tr id="ft22.5" class="none bg-danger">
|
||||
<td>
|
||||
<div class='testcase'>TestKoboSyncBig - test_sync_shelf</div>
|
||||
</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_ft22.5')">FAIL</a>
|
||||
</div>
|
||||
<!--css div popup start-->
|
||||
<div id="div_ft22.5" 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_ft22.5').style.display='none'"><span
|
||||
aria-hidden="true">×</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_big.py", line 193, in test_sync_shelf
|
||||
self.inital_sync()
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_kobo_sync_big.py", line 103, in inital_sync
|
||||
self.assertEqual(r.json(), {})
|
||||
AssertionError: {'Benefits': {}} != {}
|
||||
- {'Benefits': {}}
|
||||
+ {}</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -3844,51 +4056,322 @@ AssertionError: 0 != 1</pre>
|
||||
|
||||
|
||||
|
||||
<tr id="su" class="errorClass">
|
||||
<td>_FailedTest</td>
|
||||
<td class="text-center">1</td>
|
||||
<tr id="su" class="passClass">
|
||||
<td>TestCalibreWebVisibilitys</td>
|
||||
<td class="text-center">34</td>
|
||||
<td class="text-center">34</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">
|
||||
<a onclick="showClassDetail('c40', 1)">Detail</a>
|
||||
<a onclick="showClassDetail('c40', 34)">Detail</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id="et40.1" class="none bg-info">
|
||||
<tr id='pt40.1' class='hiddenRow bg-success'>
|
||||
<td>
|
||||
<div class='testcase'>_FailedTest - test_visiblilitys</div>
|
||||
<div class='testcase'>TestCalibreWebVisibilitys - test_about</div>
|
||||
</td>
|
||||
<td colspan='6'>
|
||||
<div class="text-center">
|
||||
<a class="popup_link text-center" onfocus='blur()' onclick="showTestDetail('div_et40.1')">ERROR</a>
|
||||
</div>
|
||||
<!--css div popup start-->
|
||||
<div id="div_et40.1" 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_et40.1').style.display='none'"><span
|
||||
aria-hidden="true">×</span></button>
|
||||
</div>
|
||||
<div class="text-left pull-left">
|
||||
<pre class="text-left">ImportError: Failed to import test module: test_visiblilitys
|
||||
Traceback (most recent call last):
|
||||
File "/usr/lib/python3.8/unittest/loader.py", line 436, in _find_test_path
|
||||
module = self._get_module_from_name(name)
|
||||
File "/usr/lib/python3.8/unittest/loader.py", line 377, in _get_module_from_name
|
||||
__import__(name)
|
||||
File "/home/ozzie/Development/calibre-web-test/test/test_visiblilitys.py", line 764
|
||||
books = self.get_shelf_books_displayed()test_upload_book_cbr
|
||||
^
|
||||
SyntaxError: invalid syntax</pre>
|
||||
</div>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
<!--css div popup end-->
|
||||
<td colspan='6' align='center'>PASS</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.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='pt40.26' class='hiddenRow bg-success'>
|
||||
<td>
|
||||
<div class='testcase'>TestCalibreWebVisibilitys - test_request_link_column_to_read_status</div>
|
||||
</td>
|
||||
<td colspan='6' align='center'>PASS</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id='pt40.27' class='hiddenRow bg-success'>
|
||||
<td>
|
||||
<div class='testcase'>TestCalibreWebVisibilitys - test_restrict_columns</div>
|
||||
</td>
|
||||
<td colspan='6' align='center'>PASS</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id='pt40.28' class='hiddenRow bg-success'>
|
||||
<td>
|
||||
<div class='testcase'>TestCalibreWebVisibilitys - test_restrict_tags</div>
|
||||
</td>
|
||||
<td colspan='6' align='center'>PASS</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id='pt40.29' 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='pt40.30' class='hiddenRow bg-success'>
|
||||
<td>
|
||||
<div class='testcase'>TestCalibreWebVisibilitys - test_search_functions</div>
|
||||
</td>
|
||||
<td colspan='6' align='center'>PASS</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id='pt40.31' class='hiddenRow bg-success'>
|
||||
<td>
|
||||
<div class='testcase'>TestCalibreWebVisibilitys - test_search_order</div>
|
||||
</td>
|
||||
<td colspan='6' align='center'>PASS</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id='pt40.32' class='hiddenRow bg-success'>
|
||||
<td>
|
||||
<div class='testcase'>TestCalibreWebVisibilitys - test_search_string</div>
|
||||
</td>
|
||||
<td colspan='6' align='center'>PASS</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr id='pt40.33' 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='pt40.34' class='hiddenRow bg-success'>
|
||||
<td>
|
||||
<div class='testcase'>TestCalibreWebVisibilitys - test_user_visibility_sidebar</div>
|
||||
</td>
|
||||
<td colspan='6' align='center'>PASS</td>
|
||||
</tr>
|
||||
|
||||
|
||||
@ -4054,10 +4537,10 @@ SyntaxError: invalid syntax</pre>
|
||||
|
||||
<tr id='total_row' class="text-center bg-grey">
|
||||
<td>Total</td>
|
||||
<td>345</td>
|
||||
<td>332</td>
|
||||
<td>5</td>
|
||||
<td>2</td>
|
||||
<td>378</td>
|
||||
<td>358</td>
|
||||
<td>14</td>
|
||||
<td>0</td>
|
||||
<td>6</td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
@ -4086,7 +4569,7 @@ SyntaxError: invalid syntax</pre>
|
||||
|
||||
<tr>
|
||||
<th>Platform</th>
|
||||
<td>Linux 5.13.0-21-generic #21~20.04.1-Ubuntu SMP Tue Oct 26 15:49:20 UTC 2021 x86_64 x86_64</td>
|
||||
<td>Linux 5.13.0-22-generic #22~20.04.1-Ubuntu SMP Tue Nov 9 15:07:24 UTC 2021 x86_64 x86_64</td>
|
||||
<td>Basic</td>
|
||||
</tr>
|
||||
|
||||
@ -4242,7 +4725,7 @@ SyntaxError: invalid syntax</pre>
|
||||
|
||||
<tr>
|
||||
<th>google-api-python-client</th>
|
||||
<td>2.31.0</td>
|
||||
<td>2.32.0</td>
|
||||
<td>TestCliGdrivedb</td>
|
||||
</tr>
|
||||
|
||||
@ -4272,7 +4755,7 @@ SyntaxError: invalid syntax</pre>
|
||||
|
||||
<tr>
|
||||
<th>google-api-python-client</th>
|
||||
<td>2.31.0</td>
|
||||
<td>2.32.0</td>
|
||||
<td>TestEbookConvertCalibreGDrive</td>
|
||||
</tr>
|
||||
|
||||
@ -4302,7 +4785,7 @@ SyntaxError: invalid syntax</pre>
|
||||
|
||||
<tr>
|
||||
<th>google-api-python-client</th>
|
||||
<td>2.31.0</td>
|
||||
<td>2.32.0</td>
|
||||
<td>TestEbookConvertGDriveKepubify</td>
|
||||
</tr>
|
||||
|
||||
@ -4344,7 +4827,7 @@ SyntaxError: invalid syntax</pre>
|
||||
|
||||
<tr>
|
||||
<th>google-api-python-client</th>
|
||||
<td>2.31.0</td>
|
||||
<td>2.32.0</td>
|
||||
<td>TestEditBooksOnGdrive</td>
|
||||
</tr>
|
||||
|
||||
@ -4374,7 +4857,7 @@ SyntaxError: invalid syntax</pre>
|
||||
|
||||
<tr>
|
||||
<th>google-api-python-client</th>
|
||||
<td>2.31.0</td>
|
||||
<td>2.32.0</td>
|
||||
<td>TestSetupGdrive</td>
|
||||
</tr>
|
||||
|
||||
@ -4464,7 +4947,7 @@ SyntaxError: invalid syntax</pre>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
drawCircle(332, 5, 2, 6);
|
||||
drawCircle(358, 14, 0, 6);
|
||||
showCase(5);
|
||||
</script>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user