Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 561508 Details for
Bug 675618
www-misc/buku-3.7 : [TEST] E socket.gaierror: [Errno -3] Temporary failure in name resolution
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
www-misc:buku-3.7:20190115-225525.log
www-misc:buku-3.7:20190115-225525.log (text/plain), 135.85 KB, created by
Toralf Förster
on 2019-01-16 18:48:14 UTC
(
hide
)
Description:
www-misc:buku-3.7:20190115-225525.log
Filename:
MIME Type:
Creator:
Toralf Förster
Created:
2019-01-16 18:48:14 UTC
Size:
135.85 KB
patch
obsolete
> * Package: www-misc/buku-3.7 > * Repository: gentoo > * Maintainer: davidroman96@gmail.com proxy-maint@gentoo.org > * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_6 test userland_GNU > * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox >>>> Unpacking source... >>>> Unpacking buku-3.7.tar.gz to /var/tmp/portage/www-misc/buku-3.7/work >>>> Source unpacked in /var/tmp/portage/www-misc/buku-3.7/work >>>> Preparing source in /var/tmp/portage/www-misc/buku-3.7/work/buku-3.7 ... >>>> Source prepared. >>>> Configuring source in /var/tmp/portage/www-misc/buku-3.7/work/buku-3.7 ... >>>> Source configured. >>>> Compiling source in /var/tmp/portage/www-misc/buku-3.7/work/buku-3.7 ... > * python3_6: running distutils-r1_run_phase distutils-r1_python_compile >python3.6 setup.py build >Error:<class 'ModuleNotFoundError'>:No module named 'pypandoc' >NOT REFRESHING README.rst >running build >running build_py >copying buku.py -> /var/tmp/portage/www-misc/buku-3.7/work/buku-3.7-python3_6/lib >warning: build_py: byte-compiling is disabled, skipping. > >>>> Source compiled. >>>> Test phase: www-misc/buku-3.7 > * python3_6: running distutils-r1_run_phase python_test >============================= test session starts ============================== >platform linux -- Python 3.6.6, pytest-4.1.0, py-1.5.4, pluggy-0.7.1 -- /usr/bin/python3.6 >cachedir: .pytest_cache >hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase('/var/tmp/portage/www-misc/buku-3.7/work/buku-3.7/.hypothesis/examples') >rootdir: /var/tmp/portage/www-misc/buku-3.7/work/buku-3.7, inifile: >plugins: cov-2.5.1, hypothesis-3.85.1 >collecting ... collected 265 items > >tests/test_BukuCrypt.py::test_get_filehash PASSED [ 0%] >tests/test_BukuCrypt.py::test_encrypt_decrypt PASSED [ 0%] >tests/test_BukuHTMLParser.py::test_init PASSED [ 1%] >tests/test_BukuHTMLParser.py::test_handle_starttag[] PASSED [ 1%] >tests/test_BukuHTMLParser.py::test_handle_starttag[title] PASSED [ 1%] >tests/test_BukuHTMLParser.py::test_handle_endtag[-None] PASSED [ 2%] >tests/test_BukuHTMLParser.py::test_handle_endtag[-data] PASSED [ 2%] >tests/test_BukuHTMLParser.py::test_handle_endtag[title-None] PASSED [ 3%] >tests/test_BukuHTMLParser.py::test_handle_endtag[title-data] PASSED [ 3%] >tests/test_BukuHTMLParser.py::test_handle_data[-None] PASSED [ 3%] >tests/test_BukuHTMLParser.py::test_handle_data[-data] PASSED [ 4%] >tests/test_BukuHTMLParser.py::test_handle_data[title-None] PASSED [ 4%] >tests/test_BukuHTMLParser.py::test_handle_data[title-data] PASSED [ 4%] >tests/test_BukuHTMLParser.py::test_error PASSED [ 5%] >tests/test_ExtendedArgumentParser.py::test_program_info[win32-None] PASSED [ 5%] >tests/test_ExtendedArgumentParser.py::test_program_info[win32-file1] PASSED [ 6%] >tests/test_ExtendedArgumentParser.py::test_program_info[linux-None] PASSED [ 6%] >tests/test_ExtendedArgumentParser.py::test_program_info[linux-file3] PASSED [ 6%] >tests/test_ExtendedArgumentParser.py::test_prompt_help PASSED [ 7%] >tests/test_ExtendedArgumentParser.py::test_print_help PASSED [ 7%] >tests/test_buku.py::test_is_bad_url[http://example.com-False] PASSED [ 7%] >tests/test_buku.py::test_is_bad_url[ftp://ftp.somedomain.org-False] PASSED [ 8%] >tests/test_buku.py::test_is_bad_url[http://examplecom.-True] PASSED [ 8%] >tests/test_buku.py::test_is_bad_url[http://.example.com-True] PASSED [ 9%] >tests/test_buku.py::test_is_bad_url[http://example.com.-True] PASSED [ 9%] >tests/test_buku.py::test_is_bad_url[about:newtab-True] PASSED [ 9%] >tests/test_buku.py::test_is_bad_url[chrome://version/-True] PASSED [ 10%] >tests/test_buku.py::test_is_ignored_mime[http://example.com/file.pdf-True] PASSED [ 10%] >tests/test_buku.py::test_is_ignored_mime[http://example.com/file.txt-True] PASSED [ 10%] >tests/test_buku.py::test_is_ignored_mime[http://example.com/file.jpg-False] PASSED [ 11%] >tests/test_buku.py::test_get_page_title PASSED [ 11%] >tests/test_buku.py::test_gen_headers PASSED [ 12%] >tests/test_buku.py::test_get_PoolManager[None] PASSED [ 12%] >tests/test_buku.py::test_get_PoolManager[m_myproxy1] PASSED [ 12%] >tests/test_buku.py::test_parse_tags[None-None] PASSED [ 13%] >tests/test_buku.py::test_parse_tags[keywords1-None] PASSED [ 13%] >tests/test_buku.py::test_parse_tags[keywords2-,tag1 tag2,] PASSED [ 13%] >tests/test_buku.py::test_parse_tags[keywords3-,tag1,tag2 tag3,] PASSED [ 14%] >tests/test_buku.py::test_print_rec_with_filter[records0-1-exp_res0] PASSED [ 14%] >tests/test_buku.py::test_print_rec_with_filter[records1-2-exp_res1] PASSED [ 15%] >tests/test_buku.py::test_print_rec_with_filter[records2-3-exp_res2] PASSED [ 15%] >tests/test_buku.py::test_print_rec_with_filter[records3-4-exp_res3] PASSED [ 15%] >tests/test_buku.py::test_print_rec_with_filter[records4-10-exp_res4] PASSED [ 16%] >tests/test_buku.py::test_print_rec_with_filter[records5-20-exp_res5] PASSED [ 16%] >tests/test_buku.py::test_print_rec_with_filter[records6-30-exp_res6] PASSED [ 16%] >tests/test_buku.py::test_print_rec_with_filter[records7-40-exp_res7] PASSED [ 17%] >tests/test_buku.py::test_prep_tag_search[tag1, tag2+3-exp_res0] PASSED [ 17%] >tests/test_buku.py::test_prep_tag_search[tag1 + tag2-3 + tag4-exp_res1] PASSED [ 18%] >tests/test_buku.py::test_prep_tag_search[tag1, tag2-3 - tag4, tag5-exp_res2] PASSED [ 18%] >tests/test_buku.py::test_edit_at_prompt[w-True-edit_rec_retval0] PASSED [ 18%] >tests/test_buku.py::test_edit_at_prompt[w-True-None] PASSED [ 19%] >tests/test_buku.py::test_edit_at_prompt[w-False-edit_rec_retval2] PASSED [ 19%] >tests/test_buku.py::test_edit_at_prompt[w-False-None] PASSED [ 20%] >tests/test_buku.py::test_edit_at_prompt[nav4-True-edit_rec_retval4] PASSED [ 20%] >tests/test_buku.py::test_edit_at_prompt[nav5-True-None] PASSED [ 20%] >tests/test_buku.py::test_edit_at_prompt[nav6-False-edit_rec_retval6] PASSED [ 21%] >tests/test_buku.py::test_edit_at_prompt[nav7-False-None] PASSED [ 21%] >tests/test_buku.py::test_edit_at_prompt[nav8-True-edit_rec_retval8] PASSED [ 21%] >tests/test_buku.py::test_edit_at_prompt[nav9-True-None] PASSED [ 22%] >tests/test_buku.py::test_edit_at_prompt[nav10-False-edit_rec_retval10] PASSED [ 22%] >tests/test_buku.py::test_edit_at_prompt[nav11-False-None] PASSED [ 23%] >tests/test_buku.py::test_format_json[0-True] PASSED [ 23%] >tests/test_buku.py::test_format_json[0-False] PASSED [ 23%] >tests/test_buku.py::test_format_json[1-True] PASSED [ 24%] >tests/test_buku.py::test_format_json[1-False] PASSED [ 24%] >tests/test_buku.py::test_format_json[2-True] PASSED [ 24%] >tests/test_buku.py::test_format_json[2-False] PASSED [ 25%] >tests/test_buku.py::test_format_json[3-True] PASSED [ 25%] >tests/test_buku.py::test_format_json[3-False] PASSED [ 26%] >tests/test_buku.py::test_is_int[string-False] PASSED [ 26%] >tests/test_buku.py::test_is_int[12-True] PASSED [ 26%] >tests/test_buku.py::test_is_int[12.1-False] PASSED [ 27%] >tests/test_buku.py::test_browse[http://example.com-http://example.com-linux] PASSED [ 27%] >tests/test_buku.py::test_browse[example.com-http://example.com-linux] PASSED [ 27%] >tests/test_buku.py::test_browse[http://example.com-http://example.com-win32] PASSED [ 28%] >tests/test_buku.py::test_check_upstream_release[200-True] PASSED [ 28%] >tests/test_buku.py::test_check_upstream_release[200-False] PASSED [ 29%] >tests/test_buku.py::test_check_upstream_release[404-True] PASSED [ 29%] >tests/test_buku.py::test_check_upstream_release[404-False] PASSED [ 29%] >tests/test_buku.py::test_regexp[cat.y-catty-True] PASSED [ 30%] >tests/test_buku.py::test_regexp[cat.y-caty-False] PASSED [ 30%] >tests/test_buku.py::test_delim_wrap[text-,text,] PASSED [ 30%] >tests/test_buku.py::test_read_in PASSED [ 31%] >tests/test_buku.py::test_sigint_handler_with_mock PASSED [ 31%] >tests/test_buku.py::test_get_system_editor PASSED [ 32%] >tests/test_buku.py::test_is_editor_valid[none-False] PASSED [ 32%] >tests/test_buku.py::test_is_editor_valid[0-False] PASSED [ 32%] >tests/test_buku.py::test_is_editor_valid[random_editor-True] PASSED [ 33%] >tests/test_buku.py::test_to_temp_file_content[None-None--None] PASSED [ 33%] >tests/test_buku.py::test_to_temp_file_content[None-None--] PASSED [ 33%] >tests/test_buku.py::test_to_temp_file_content[None-None--description] PASSED [ 34%] >tests/test_buku.py::test_to_temp_file_content[None-None-tag1,tag2-None] PASSED [ 34%] >tests/test_buku.py::test_to_temp_file_content[None-None-tag1,tag2-] PASSED [ 35%] >tests/test_buku.py::test_to_temp_file_content[None-None-tag1,tag2-description] PASSED [ 35%] >tests/test_buku.py::test_to_temp_file_content[None-None-,tag1,tag2,-None] PASSED [ 35%] >tests/test_buku.py::test_to_temp_file_content[None-None-,tag1,tag2,-] PASSED [ 36%] >tests/test_buku.py::test_to_temp_file_content[None-None-,tag1,tag2,-description] PASSED [ 36%] >tests/test_buku.py::test_to_temp_file_content[None---None] PASSED [ 36%] >tests/test_buku.py::test_to_temp_file_content[None---] PASSED [ 37%] >tests/test_buku.py::test_to_temp_file_content[None---description] PASSED [ 37%] >tests/test_buku.py::test_to_temp_file_content[None--tag1,tag2-None] PASSED [ 38%] >tests/test_buku.py::test_to_temp_file_content[None--tag1,tag2-] PASSED [ 38%] >tests/test_buku.py::test_to_temp_file_content[None--tag1,tag2-description] PASSED [ 38%] >tests/test_buku.py::test_to_temp_file_content[None--,tag1,tag2,-None] PASSED [ 39%] >tests/test_buku.py::test_to_temp_file_content[None--,tag1,tag2,-] PASSED [ 39%] >tests/test_buku.py::test_to_temp_file_content[None--,tag1,tag2,-description] PASSED [ 40%] >tests/test_buku.py::test_to_temp_file_content[None-title--None] PASSED [ 40%] >tests/test_buku.py::test_to_temp_file_content[None-title--] PASSED [ 40%] >tests/test_buku.py::test_to_temp_file_content[None-title--description] PASSED [ 41%] >tests/test_buku.py::test_to_temp_file_content[None-title-tag1,tag2-None] PASSED [ 41%] >tests/test_buku.py::test_to_temp_file_content[None-title-tag1,tag2-] PASSED [ 41%] >tests/test_buku.py::test_to_temp_file_content[None-title-tag1,tag2-description] PASSED [ 42%] >tests/test_buku.py::test_to_temp_file_content[None-title-,tag1,tag2,-None] PASSED [ 42%] >tests/test_buku.py::test_to_temp_file_content[None-title-,tag1,tag2,-] PASSED [ 43%] >tests/test_buku.py::test_to_temp_file_content[None-title-,tag1,tag2,-description] PASSED [ 43%] >tests/test_buku.py::test_to_temp_file_content[example.com-None--None] PASSED [ 43%] >tests/test_buku.py::test_to_temp_file_content[example.com-None--] PASSED [ 44%] >tests/test_buku.py::test_to_temp_file_content[example.com-None--description] PASSED [ 44%] >tests/test_buku.py::test_to_temp_file_content[example.com-None-tag1,tag2-None] PASSED [ 44%] >tests/test_buku.py::test_to_temp_file_content[example.com-None-tag1,tag2-] PASSED [ 45%] >tests/test_buku.py::test_to_temp_file_content[example.com-None-tag1,tag2-description] PASSED [ 45%] >tests/test_buku.py::test_to_temp_file_content[example.com-None-,tag1,tag2,-None] PASSED [ 46%] >tests/test_buku.py::test_to_temp_file_content[example.com-None-,tag1,tag2,-] PASSED [ 46%] >tests/test_buku.py::test_to_temp_file_content[example.com-None-,tag1,tag2,-description] PASSED [ 46%] >tests/test_buku.py::test_to_temp_file_content[example.com---None] PASSED [ 47%] >tests/test_buku.py::test_to_temp_file_content[example.com---] PASSED [ 47%] >tests/test_buku.py::test_to_temp_file_content[example.com---description] PASSED [ 47%] >tests/test_buku.py::test_to_temp_file_content[example.com--tag1,tag2-None] PASSED [ 48%] >tests/test_buku.py::test_to_temp_file_content[example.com--tag1,tag2-] PASSED [ 48%] >tests/test_buku.py::test_to_temp_file_content[example.com--tag1,tag2-description] PASSED [ 49%] >tests/test_buku.py::test_to_temp_file_content[example.com--,tag1,tag2,-None] PASSED [ 49%] >tests/test_buku.py::test_to_temp_file_content[example.com--,tag1,tag2,-] PASSED [ 49%] >tests/test_buku.py::test_to_temp_file_content[example.com--,tag1,tag2,-description] PASSED [ 50%] >tests/test_buku.py::test_to_temp_file_content[example.com-title--None] PASSED [ 50%] >tests/test_buku.py::test_to_temp_file_content[example.com-title--] PASSED [ 50%] >tests/test_buku.py::test_to_temp_file_content[example.com-title--description] PASSED [ 51%] >tests/test_buku.py::test_to_temp_file_content[example.com-title-tag1,tag2-None] PASSED [ 51%] >tests/test_buku.py::test_to_temp_file_content[example.com-title-tag1,tag2-] PASSED [ 52%] >tests/test_buku.py::test_to_temp_file_content[example.com-title-tag1,tag2-description] PASSED [ 52%] >tests/test_buku.py::test_to_temp_file_content[example.com-title-,tag1,tag2,-None] PASSED [ 52%] >tests/test_buku.py::test_to_temp_file_content[example.com-title-,tag1,tag2,-] PASSED [ 53%] >tests/test_buku.py::test_to_temp_file_content[example.com-title-,tag1,tag2,-description] PASSED [ 53%] >tests/test_buku.py::test_parse_temp_file_content[-None] PASSED [ 53%] >tests/test_buku.py::test_parse_temp_file_content[#line1\n#line2-None] PASSED [ 54%] >tests/test_buku.py::test_parse_temp_file_content[example.com\ntitle\ntags\ndesc-exp_res2] PASSED [ 54%] >tests/test_buku.py::test_edit_rec SKIPPED [ 55%] >tests/test_buku.py::test_piped_input[argv-None-True] PASSED [ 55%] >tests/test_buku.py::test_piped_input[argv-None-False] PASSED [ 55%] >tests/test_buku.py::test_piped_input[argv-pipeargs2-True] PASSED [ 56%] >tests/test_buku.py::test_piped_input[argv-pipeargs3-False] PASSED [ 56%] >tests/test_buku.py::TestHelpers::test_is_int PASSED [ 56%] >tests/test_buku.py::TestHelpers::test_parse_tags PASSED [ 57%] >tests/test_buku.py::test_sigint_handler SKIPPED [ 57%] >tests/test_buku.py::test_network_handler_with_url[http://example.com.-exp_res0] PASSED [ 58%] >tests/test_buku.py::test_network_handler_with_url[http://example.com-exp_res1] FAILED [ 58%] >tests/test_buku.py::test_network_handler_with_url[http://example.com/page1.txt-exp_res2] PASSED [ 58%] >tests/test_buku.py::test_network_handler_with_url[about:new_page-exp_res3] PASSED [ 59%] >tests/test_buku.py::test_network_handler_with_url[chrome://version/-exp_res4] PASSED [ 59%] >tests/test_buku.py::test_is_nongeneric_url[http://example.com-False] PASSED [ 60%] >tests/test_buku.py::test_is_nongeneric_url[apt:package1,package2,package3-True] PASSED [ 60%] >tests/test_buku.py::test_is_nongeneric_url[apt://firefox-True] PASSED [ 60%] >tests/test_buku.py::test_is_nongeneric_url[file:///tmp/vim-markdown-preview.html-True] PASSED [ 61%] >tests/test_buku.py::test_is_nongeneric_url[place:sort=8&maxResults=10-True] PASSED [ 61%] >tests/test_buku.py::test_import_md[None-exp_res0] PASSED [ 61%] >tests/test_buku.py::test_import_md[tag1-exp_res1] PASSED [ 62%] >tests/test_buku.py::test_import_html[<DT><A HREF="https://github.com/j" ADD_DATE="1360951967" PRIVATE="1" TAGS="tag1,tag2">GitHub</A>\n<DD>comment for the bookmark here\n<a> </a>-exp_res0] PASSED [ 62%] >tests/test_buku.py::test_import_html[DT><A HREF="https://github.com/j" ADD_DATE="1360951967" PRIVATE="1" TAGS="tag1,tag2">GitHub</A>\n <DD>comment for the bookmark here\n <a>second line of the comment here</a>-exp_res1] PASSED [ 63%] >tests/test_buku.py::test_import_html[DT><A HREF="https://github.com/j" ADD_DATE="1360951967" PRIVATE="1" TAGS="tag1,tag2">GitHub</A>\n <DD>comment for the bookmark here\n second line of the comment here\n third line of the comment here\n <DT><A HREF="https://news.com/" ADD_DATE="1360951967" PRIVATE="1" TAGS="tag1,tag2,tag3">News</A>-exp_res2] PASSED [ 63%] >tests/test_buku.py::test_import_html[DT><A HREF="https://github.com/j" ADD_DATE="1360951967" PRIVATE="1" TAGS="tag1,tag2">GitHub</A>\n <DD>comment for the bookmark here-exp_res3] PASSED [ 63%] >tests/test_buku.py::test_import_html_and_add_parent PASSED [ 64%] >tests/test_buku.py::test_import_html_and_new_tag PASSED [ 64%] >tests/test_buku.py::test_copy_to_clipboard[linux-params0] PASSED [ 64%] >tests/test_buku.py::test_copy_to_clipboard[freebsd-params1] PASSED [ 65%] >tests/test_buku.py::test_copy_to_clipboard[openbsd-params2] PASSED [ 65%] >tests/test_buku.py::test_copy_to_clipboard[darwin-params3] PASSED [ 66%] >tests/test_buku.py::test_copy_to_clipboard[win32-params4] PASSED [ 66%] >tests/test_buku.py::test_copy_to_clipboard[random-None] PASSED [ 66%] >tests/test_bukuDb.py::TestBukuDb::test_add_rec PASSED [ 67%] >tests/test_bukuDb.py::TestBukuDb::test_append_tag_at_all_indices PASSED [ 67%] >tests/test_bukuDb.py::TestBukuDb::test_append_tag_at_index PASSED [ 67%] >tests/test_bukuDb.py::TestBukuDb::test_cleardb PASSED [ 68%] >tests/test_bukuDb.py::TestBukuDb::test_close_quit PASSED [ 68%] >tests/test_bukuDb.py::TestBukuDb::test_delete_rec PASSED [ 69%] >tests/test_bukuDb.py::TestBukuDb::test_delete_rec_no PASSED [ 69%] >tests/test_bukuDb.py::TestBukuDb::test_delete_rec_yes PASSED [ 69%] >tests/test_bukuDb.py::TestBukuDb::test_delete_tag_at_index PASSED [ 70%] >tests/test_bukuDb.py::TestBukuDb::test_get_default_dbdir PASSED [ 70%] >tests/test_bukuDb.py::TestBukuDb::test_get_rec_by_id PASSED [ 70%] >tests/test_bukuDb.py::TestBukuDb::test_get_rec_id PASSED [ 71%] >tests/test_bukuDb.py::TestBukuDb::test_initdb PASSED [ 71%] >tests/test_bukuDb.py::TestBukuDb::test_refreshdb FAILED [ 72%] >tests/test_bukuDb.py::TestBukuDb::test_replace_tag PASSED [ 72%] >tests/test_bukuDb.py::TestBukuDb::test_search_and_open_all_in_browser PASSED [ 72%] >tests/test_bukuDb.py::TestBukuDb::test_search_and_open_in_broswer_by_range PASSED [ 73%] >tests/test_bukuDb.py::TestBukuDb::test_search_by_multiple_tags_search_all PASSED [ 73%] >tests/test_bukuDb.py::TestBukuDb::test_search_by_multiple_tags_search_any PASSED [ 73%] >tests/test_bukuDb.py::TestBukuDb::test_search_by_tag PASSED [ 74%] >tests/test_bukuDb.py::TestBukuDb::test_search_by_tags_enforces_space_seprations_exclusion PASSED [ 74%] >tests/test_bukuDb.py::TestBukuDb::test_search_by_tags_enforces_space_seprations_search_all PASSED [ 75%] >tests/test_bukuDb.py::TestBukuDb::test_search_by_tags_exclusion PASSED [ 75%] >tests/test_bukuDb.py::TestBukuDb::test_search_keywords_and_filter_by_tags PASSED [ 75%] >tests/test_bukuDb.py::TestBukuDb::test_searchdb PASSED [ 76%] >tests/test_bukuDb.py::TestBukuDb::test_suggest_tags PASSED [ 76%] >tests/test_bukuDb.py::TestBukuDb::test_tnyfy_url FAILED [ 76%] >tests/test_bukuDb.py::TestBukuDb::test_update_rec PASSED [ 77%] >tests/test_bukuDb.py::test_print_rec_hypothesis PASSED [ 77%] >tests/test_bukuDb.py::test_list_tags PASSED [ 78%] >tests/test_bukuDb.py::test_compactdb PASSED [ 78%] >tests/test_bukuDb.py::test_delete_rec_range_and_delay_commit PASSED [ 78%] >tests/test_bukuDb.py::test_delete_rec_range_and_big_int[1-1] SKIPPED [ 79%] >tests/test_bukuDb.py::test_delete_rec_range_and_big_int[1-9223372036854775809] SKIPPED [ 79%] >tests/test_bukuDb.py::test_delete_rec_range_and_big_int[9223372036854775809-1] SKIPPED [ 80%] >tests/test_bukuDb.py::test_delete_rec_range_and_big_int[9223372036854775809-9223372036854775809] SKIPPED [ 80%] >tests/test_bukuDb.py::test_delete_rec_index_and_delay_commit PASSED [ 80%] >tests/test_bukuDb.py::test_delete_rec_on_empty_database[0-True-1-1] PASSED [ 81%] >tests/test_bukuDb.py::test_delete_rec_on_empty_database[0-True-0-0] PASSED [ 81%] >tests/test_bukuDb.py::test_delete_rec_on_empty_database[0-False-0-0] PASSED [ 81%] >tests/test_bukuDb.py::test_delete_rec_on_non_interger[a-a-1-True] PASSED [ 82%] >tests/test_bukuDb.py::test_delete_rec_on_non_interger[a-a-1-False] PASSED [ 82%] >tests/test_bukuDb.py::test_delete_rec_on_non_interger[a-1-a-True] PASSED [ 83%] >tests/test_bukuDb.py::test_add_rec_add_invalid_url[] PASSED [ 83%] >tests/test_bukuDb.py::test_add_rec_add_invalid_url[False] PASSED [ 83%] >tests/test_bukuDb.py::test_add_rec_add_invalid_url[None] PASSED [ 84%] >tests/test_bukuDb.py::test_add_rec_add_invalid_url[0] PASSED [ 84%] >tests/test_bukuDb.py::test_add_rec_exec_arg[kwargs0-exp_arg0] FAILED [ 84%] >tests/test_bukuDb.py::test_add_rec_exec_arg[kwargs1-exp_arg1] FAILED [ 85%] >tests/test_bukuDb.py::test_add_rec_exec_arg[kwargs2-exp_arg2] FAILED [ 85%] >tests/test_bukuDb.py::test_add_rec_exec_arg[kwargs3-exp_arg3] FAILED [ 86%] >tests/test_bukuDb.py::test_add_rec_exec_arg[kwargs4-exp_arg4] PASSED [ 86%] >tests/test_bukuDb.py::test_add_rec_exec_arg[kwargs5-exp_arg5] FAILED [ 86%] >tests/test_bukuDb.py::test_add_rec_exec_arg[kwargs6-exp_arg6] FAILED [ 87%] >tests/test_bukuDb.py::test_add_rec_exec_arg[kwargs7-exp_arg7] FAILED [ 87%] >tests/test_bukuDb.py::test_update_rec_index_0 PASSED [ 87%] >tests/test_bukuDb.py::test_update_rec_exec_arg[kwargs0-UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?-exp_arguments0] FAILED [ 88%] >tests/test_bukuDb.py::test_update_rec_exec_arg[kwargs1-UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?-exp_arguments1] PASSED [ 88%] >tests/test_bukuDb.py::test_update_rec_exec_arg[kwargs2-UPDATE bookmarks SET URL = ?, tags = ?, metadata = ? WHERE id = ?-exp_arguments2] FAILED [ 89%] >tests/test_bukuDb.py::test_update_rec_exec_arg[kwargs3-UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?-exp_arguments3] FAILED [ 89%] >tests/test_bukuDb.py::test_update_rec_exec_arg[kwargs4-UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?-exp_arguments4] FAILED [ 89%] >tests/test_bukuDb.py::test_update_rec_exec_arg[kwargs5-UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?-exp_arguments5] FAILED [ 90%] >tests/test_bukuDb.py::test_search_by_tag_query[tag1, tag2-SELECT id, url, metadata, tags, desc FROM bookmarks WHERE tags LIKE '%' || ? || '%' OR tags LIKE '%' || ? || '%' ORDER BY id ASC-exp_arguments0] PASSED [ 90%] >tests/test_bukuDb.py::test_search_by_tag_query[tag1+tag2,tag3, tag4-SELECT id, url, metadata, tags, desc FROM bookmarks WHERE tags LIKE '%' || ? || '%' OR tags LIKE '%' || ? || '%' OR tags LIKE '%' || ? || '%' ORDER BY id ASC-exp_arguments1] PASSED [ 90%] >tests/test_bukuDb.py::test_search_by_tag_query[tag1 + tag2+tag3-SELECT id, url, metadata, tags, desc FROM bookmarks WHERE tags LIKE '%' || ? || '%' AND tags LIKE '%' || ? || '%' ORDER BY id ASC-exp_arguments2] PASSED [ 91%] >tests/test_bukuDb.py::test_search_by_tag_query[tag1-tag2 + tag 3 - tag4-SELECT id, url, metadata, tags, desc FROM bookmarks WHERE (tags LIKE '%' || ? || '%' AND tags LIKE '%' || ? || '%' ) AND tags NOT REGEXP ? ORDER BY id ASC-exp_arguments3] PASSED [ 91%] >tests/test_bukuDb.py::test_update_rec_only_index PASSED [ 92%] >tests/test_bukuDb.py::test_update_rec_invalid_url[None] PASSED [ 92%] >tests/test_bukuDb.py::test_update_rec_invalid_url[] PASSED [ 92%] >tests/test_bukuDb.py::test_update_rec_invalid_tag[+,] PASSED [ 93%] >tests/test_bukuDb.py::test_update_rec_invalid_tag[-,] PASSED [ 93%] >tests/test_bukuDb.py::test_update_rec_update_all_bookmark[y] PASSED [ 93%] >tests/test_bukuDb.py::test_update_rec_update_all_bookmark[n] PASSED [ 94%] >tests/test_bukuDb.py::test_update_rec_update_all_bookmark[] PASSED [ 94%] >tests/test_bukuDb.py::test_edit_update_rec_with_invalid_input[none-0-False] PASSED [ 95%] >tests/test_bukuDb.py::test_edit_update_rec_with_invalid_input[nano--2-False] PASSED [ 95%] >tests/test_bukuDb.py::test_browse_by_index PASSED [ 95%] >tests/test_bukuDb.py::test_load_chrome_database[True] ERROR [ 96%] >tests/test_bukuDb.py::test_load_chrome_database[False] ERROR [ 96%] >tests/test_bukuDb.py::test_load_firefox_database[True] ERROR [ 96%] >tests/test_bukuDb.py::test_load_firefox_database[False] ERROR [ 97%] >tests/test_bukuDb.py::test_search_keywords_and_filter_by_tags[keyword_results0-stag_results0-exp_res0] PASSED [ 97%] >tests/test_bukuDb.py::test_search_keywords_and_filter_by_tags[keyword_results1-stag_results1-exp_res1] PASSED [ 98%] >tests/test_bukuDb.py::test_search_keywords_and_filter_by_tags[keyword_results2-stag_results2-exp_res2] PASSED [ 98%] >tests/test_bukuDb.py::test_exclude_results_from_search[search_results0-exclude_results0-exp_res0] PASSED [ 98%] >tests/test_bukuDb.py::test_exclude_results_from_search[search_results1-exclude_results1-exp_res1] PASSED [ 99%] >tests/test_bukuDb.py::test_exclude_results_from_search[search_results2-exclude_results2-exp_res2] PASSED [ 99%] >tests/test_bukuDb.py::test_exclude_results_from_search[search_results3-exclude_results3-exp_res3] PASSED [100%] > >==================================== ERRORS ==================================== >______________ ERROR at setup of test_load_chrome_database[True] _______________ > >self = <urllib.request.HTTPSHandler object at 0x7f0293153d30> >http_class = <class 'http.client.HTTPSConnection'> >req = <urllib.request.Request object at 0x7f0293c958d0> >http_conn_args = {'check_hostname': None, 'context': None}, host = 'github.com' >h = <http.client.HTTPSConnection object at 0x7f0293153588> > > def do_open(self, http_class, req, **http_conn_args): > """Return an HTTPResponse object for the request, using http_class. > > http_class must implement the HTTPConnection API from http.client. > """ > host = req.host > if not host: > raise URLError('no host given') > > # will parse host:port > h = http_class(host, timeout=req.timeout, **http_conn_args) > h.set_debuglevel(self._debuglevel) > > headers = dict(req.unredirected_hdrs) > headers.update(dict((k, v) for k, v in req.headers.items() > if k not in headers)) > > # TODO(jhylton): Should this be redesigned to handle > # persistent connections? > > # We want to make an HTTP/1.1 request, but the addinfourl > # class isn't prepared to deal with a persistent connection. > # It will try to read all remaining data from the socket, > # which will block while the server waits for the next request. > # So make sure the connection gets closed after the (only) > # request. > headers["Connection"] = "close" > headers = dict((name.title(), val) for name, val in headers.items()) > > if req._tunnel_host: > tunnel_headers = {} > proxy_auth_hdr = "Proxy-Authorization" > if proxy_auth_hdr in headers: > tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] > # Proxy-Authorization should not be sent to origin > # server. > del headers[proxy_auth_hdr] > h.set_tunnel(req._tunnel_host, headers=tunnel_headers) > > try: > try: > h.request(req.get_method(), req.selector, req.data, headers, >> encode_chunked=req.has_header('Transfer-encoding')) > >/usr/lib64/python3.6/urllib/request.py:1318: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0293153588>, method = 'GET' >url = '/jarun/Buku/files/1319933/bookmarks.zip', body = None >headers = {'Connection': 'close', 'Host': 'github.com', 'User-Agent': 'Python-urllib/3.6'} > > def request(self, method, url, body=None, headers={}, *, > encode_chunked=False): > """Send a complete request to the server.""" >> self._send_request(method, url, body, headers, encode_chunked) > >/usr/lib64/python3.6/http/client.py:1239: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0293153588>, method = 'GET' >url = '/jarun/Buku/files/1319933/bookmarks.zip', body = None >headers = {'Connection': 'close', 'Host': 'github.com', 'User-Agent': 'Python-urllib/3.6'} >encode_chunked = False > > def _send_request(self, method, url, body, headers, encode_chunked): > # Honor explicitly requested Host: and Accept-Encoding: headers. > header_names = frozenset(k.lower() for k in headers) > skips = {} > if 'host' in header_names: > skips['skip_host'] = 1 > if 'accept-encoding' in header_names: > skips['skip_accept_encoding'] = 1 > > self.putrequest(method, url, **skips) > > # chunked encoding will happen if HTTP/1.1 is used and either > # the caller passes encode_chunked=True or the following > # conditions hold: > # 1. content-length has not been explicitly set > # 2. the body is a file or iterable, but not a str or bytes-like > # 3. Transfer-Encoding has NOT been explicitly set by the caller > > if 'content-length' not in header_names: > # only chunk body if not explicitly set for backwards > # compatibility, assuming the client code is already handling the > # chunking > if 'transfer-encoding' not in header_names: > # if content-length cannot be automatically determined, fall > # back to chunked encoding > encode_chunked = False > content_length = self._get_content_length(body, method) > if content_length is None: > if body is not None: > if self.debuglevel > 0: > print('Unable to determine size of %r' % body) > encode_chunked = True > self.putheader('Transfer-Encoding', 'chunked') > else: > self.putheader('Content-Length', str(content_length)) > else: > encode_chunked = False > > for hdr, value in headers.items(): > self.putheader(hdr, value) > if isinstance(body, str): > # RFC 2616 Section 3.7.1 says that text default has a > # default charset of iso-8859-1. > body = _encode(body, 'body') >> self.endheaders(body, encode_chunked=encode_chunked) > >/usr/lib64/python3.6/http/client.py:1285: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0293153588> >message_body = None > > def endheaders(self, message_body=None, *, encode_chunked=False): > """Indicate that the last header line has been sent to the server. > > This method sends the request to the server. The optional message_body > argument can be used to pass a message body associated with the > request. > """ > if self.__state == _CS_REQ_STARTED: > self.__state = _CS_REQ_SENT > else: > raise CannotSendHeader() >> self._send_output(message_body, encode_chunked=encode_chunked) > >/usr/lib64/python3.6/http/client.py:1234: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0293153588> >message_body = None, encode_chunked = False > > def _send_output(self, message_body=None, encode_chunked=False): > """Send the currently buffered request and clear the buffer. > > Appends an extra \\r\\n to the buffer. > A message_body may be specified, to be appended to the request. > """ > self._buffer.extend((b"", b"")) > msg = b"\r\n".join(self._buffer) > del self._buffer[:] >> self.send(msg) > >/usr/lib64/python3.6/http/client.py:1026: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0293153588> >data = b'GET /jarun/Buku/files/1319933/bookmarks.zip HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: github.com\r\nUser-Agent: Python-urllib/3.6\r\nConnection: close\r\n\r\n' > > def send(self, data): > """Send `data' to the server. > ``data`` can be a string object, a bytes object, an array object, a > file-like object that supports a .read() method, or an iterable object. > """ > > if self.sock is None: > if self.auto_open: >> self.connect() > >/usr/lib64/python3.6/http/client.py:964: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0293153588> > > def connect(self): > "Connect to a host on a given (SSL) port." > >> super().connect() > >/usr/lib64/python3.6/http/client.py:1392: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0293153588> > > def connect(self): > """Connect to the host and port specified in __init__.""" > self.sock = self._create_connection( >> (self.host,self.port), self.timeout, self.source_address) > >/usr/lib64/python3.6/http/client.py:936: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >address = ('github.com', 443), timeout = <object object at 0x7f029ed081d0> >source_address = None > > def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, > source_address=None): > """Connect to *address* and return the socket object. > > Convenience function. Connect to *address* (a 2-tuple ``(host, > port)``) and return the socket object. Passing the optional > *timeout* parameter will set the timeout on the socket instance > before attempting to connect. If no *timeout* is supplied, the > global default timeout setting returned by :func:`getdefaulttimeout` > is used. If *source_address* is set it must be a tuple of (host, port) > for the socket to bind as a source address before making the connection. > A host of '' or port 0 tells the OS to use the default. > """ > > host, port = address > err = None >> for res in getaddrinfo(host, port, 0, SOCK_STREAM): > >/usr/lib64/python3.6/socket.py:704: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >host = 'github.com', port = 443, family = 0, type = <SocketKind.SOCK_STREAM: 1> >proto = 0, flags = 0 > > def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): > """Resolve host and port into list of address info entries. > > Translate the host/port argument into a sequence of 5-tuples that contain > all the necessary arguments for creating a socket connected to that service. > host is a domain name, a string representation of an IPv4/v6 address or > None. port is a string service name such as 'http', a numeric port number or > None. By passing None as the value of host and port, you can pass NULL to > the underlying C API. > > The family, type and proto arguments can be optionally specified in order to > narrow the list of addresses returned. Passing zero as a value for each of > these arguments selects the full range of results. > """ > # We override this function since we want to translate the numeric family > # and socket type values to enum constants. > addrlist = [] >> for res in _socket.getaddrinfo(host, port, family, type, proto, flags): >E socket.gaierror: [Errno -3] Temporary failure in name resolution > >/usr/lib64/python3.6/socket.py:745: gaierror > >During handling of the above exception, another exception occurred: > >tmpdir = local('/var/tmp/portage/www-misc/buku-3.7/temp/pytest-of-portage/pytest-0/test_load_chrome_database_True0') > > @pytest.fixture() > def bookmark_folder(tmpdir): > # database > zip_url = 'https://github.com/jarun/Buku/files/1319933/bookmarks.zip' > tmp_zip = tmpdir.join('bookmarks.zip') >> extract_all_from_zip_url(zip_url, tmp_zip, tmpdir) > >tests/test_bukuDb.py:1242: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_bukuDb.py:1365: in extract_all_from_zip_url > with urllib.request.urlopen(zip_url) as response, open(tmp_zip.strpath, 'wb') as out_file: >/usr/lib64/python3.6/urllib/request.py:223: in urlopen > return opener.open(url, data, timeout) >/usr/lib64/python3.6/urllib/request.py:526: in open > response = self._open(req, data) >/usr/lib64/python3.6/urllib/request.py:544: in _open > '_open', req) >/usr/lib64/python3.6/urllib/request.py:504: in _call_chain > result = func(*args) >/usr/lib64/python3.6/urllib/request.py:1361: in https_open > context=self._context, check_hostname=self._check_hostname) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <urllib.request.HTTPSHandler object at 0x7f0293153d30> >http_class = <class 'http.client.HTTPSConnection'> >req = <urllib.request.Request object at 0x7f0293c958d0> >http_conn_args = {'check_hostname': None, 'context': None}, host = 'github.com' >h = <http.client.HTTPSConnection object at 0x7f0293153588> > > def do_open(self, http_class, req, **http_conn_args): > """Return an HTTPResponse object for the request, using http_class. > > http_class must implement the HTTPConnection API from http.client. > """ > host = req.host > if not host: > raise URLError('no host given') > > # will parse host:port > h = http_class(host, timeout=req.timeout, **http_conn_args) > h.set_debuglevel(self._debuglevel) > > headers = dict(req.unredirected_hdrs) > headers.update(dict((k, v) for k, v in req.headers.items() > if k not in headers)) > > # TODO(jhylton): Should this be redesigned to handle > # persistent connections? > > # We want to make an HTTP/1.1 request, but the addinfourl > # class isn't prepared to deal with a persistent connection. > # It will try to read all remaining data from the socket, > # which will block while the server waits for the next request. > # So make sure the connection gets closed after the (only) > # request. > headers["Connection"] = "close" > headers = dict((name.title(), val) for name, val in headers.items()) > > if req._tunnel_host: > tunnel_headers = {} > proxy_auth_hdr = "Proxy-Authorization" > if proxy_auth_hdr in headers: > tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] > # Proxy-Authorization should not be sent to origin > # server. > del headers[proxy_auth_hdr] > h.set_tunnel(req._tunnel_host, headers=tunnel_headers) > > try: > try: > h.request(req.get_method(), req.selector, req.data, headers, > encode_chunked=req.has_header('Transfer-encoding')) > except OSError as err: # timeout error >> raise URLError(err) >E urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution> > >/usr/lib64/python3.6/urllib/request.py:1320: URLError >______________ ERROR at setup of test_load_chrome_database[False] ______________ > >self = <urllib.request.HTTPSHandler object at 0x7f0293153d30> >http_class = <class 'http.client.HTTPSConnection'> >req = <urllib.request.Request object at 0x7f029067b208> >http_conn_args = {'check_hostname': None, 'context': None}, host = 'github.com' >h = <http.client.HTTPSConnection object at 0x7f029067b1d0> > > def do_open(self, http_class, req, **http_conn_args): > """Return an HTTPResponse object for the request, using http_class. > > http_class must implement the HTTPConnection API from http.client. > """ > host = req.host > if not host: > raise URLError('no host given') > > # will parse host:port > h = http_class(host, timeout=req.timeout, **http_conn_args) > h.set_debuglevel(self._debuglevel) > > headers = dict(req.unredirected_hdrs) > headers.update(dict((k, v) for k, v in req.headers.items() > if k not in headers)) > > # TODO(jhylton): Should this be redesigned to handle > # persistent connections? > > # We want to make an HTTP/1.1 request, but the addinfourl > # class isn't prepared to deal with a persistent connection. > # It will try to read all remaining data from the socket, > # which will block while the server waits for the next request. > # So make sure the connection gets closed after the (only) > # request. > headers["Connection"] = "close" > headers = dict((name.title(), val) for name, val in headers.items()) > > if req._tunnel_host: > tunnel_headers = {} > proxy_auth_hdr = "Proxy-Authorization" > if proxy_auth_hdr in headers: > tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] > # Proxy-Authorization should not be sent to origin > # server. > del headers[proxy_auth_hdr] > h.set_tunnel(req._tunnel_host, headers=tunnel_headers) > > try: > try: > h.request(req.get_method(), req.selector, req.data, headers, >> encode_chunked=req.has_header('Transfer-encoding')) > >/usr/lib64/python3.6/urllib/request.py:1318: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f029067b1d0>, method = 'GET' >url = '/jarun/Buku/files/1319933/bookmarks.zip', body = None >headers = {'Connection': 'close', 'Host': 'github.com', 'User-Agent': 'Python-urllib/3.6'} > > def request(self, method, url, body=None, headers={}, *, > encode_chunked=False): > """Send a complete request to the server.""" >> self._send_request(method, url, body, headers, encode_chunked) > >/usr/lib64/python3.6/http/client.py:1239: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f029067b1d0>, method = 'GET' >url = '/jarun/Buku/files/1319933/bookmarks.zip', body = None >headers = {'Connection': 'close', 'Host': 'github.com', 'User-Agent': 'Python-urllib/3.6'} >encode_chunked = False > > def _send_request(self, method, url, body, headers, encode_chunked): > # Honor explicitly requested Host: and Accept-Encoding: headers. > header_names = frozenset(k.lower() for k in headers) > skips = {} > if 'host' in header_names: > skips['skip_host'] = 1 > if 'accept-encoding' in header_names: > skips['skip_accept_encoding'] = 1 > > self.putrequest(method, url, **skips) > > # chunked encoding will happen if HTTP/1.1 is used and either > # the caller passes encode_chunked=True or the following > # conditions hold: > # 1. content-length has not been explicitly set > # 2. the body is a file or iterable, but not a str or bytes-like > # 3. Transfer-Encoding has NOT been explicitly set by the caller > > if 'content-length' not in header_names: > # only chunk body if not explicitly set for backwards > # compatibility, assuming the client code is already handling the > # chunking > if 'transfer-encoding' not in header_names: > # if content-length cannot be automatically determined, fall > # back to chunked encoding > encode_chunked = False > content_length = self._get_content_length(body, method) > if content_length is None: > if body is not None: > if self.debuglevel > 0: > print('Unable to determine size of %r' % body) > encode_chunked = True > self.putheader('Transfer-Encoding', 'chunked') > else: > self.putheader('Content-Length', str(content_length)) > else: > encode_chunked = False > > for hdr, value in headers.items(): > self.putheader(hdr, value) > if isinstance(body, str): > # RFC 2616 Section 3.7.1 says that text default has a > # default charset of iso-8859-1. > body = _encode(body, 'body') >> self.endheaders(body, encode_chunked=encode_chunked) > >/usr/lib64/python3.6/http/client.py:1285: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f029067b1d0> >message_body = None > > def endheaders(self, message_body=None, *, encode_chunked=False): > """Indicate that the last header line has been sent to the server. > > This method sends the request to the server. The optional message_body > argument can be used to pass a message body associated with the > request. > """ > if self.__state == _CS_REQ_STARTED: > self.__state = _CS_REQ_SENT > else: > raise CannotSendHeader() >> self._send_output(message_body, encode_chunked=encode_chunked) > >/usr/lib64/python3.6/http/client.py:1234: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f029067b1d0> >message_body = None, encode_chunked = False > > def _send_output(self, message_body=None, encode_chunked=False): > """Send the currently buffered request and clear the buffer. > > Appends an extra \\r\\n to the buffer. > A message_body may be specified, to be appended to the request. > """ > self._buffer.extend((b"", b"")) > msg = b"\r\n".join(self._buffer) > del self._buffer[:] >> self.send(msg) > >/usr/lib64/python3.6/http/client.py:1026: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f029067b1d0> >data = b'GET /jarun/Buku/files/1319933/bookmarks.zip HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: github.com\r\nUser-Agent: Python-urllib/3.6\r\nConnection: close\r\n\r\n' > > def send(self, data): > """Send `data' to the server. > ``data`` can be a string object, a bytes object, an array object, a > file-like object that supports a .read() method, or an iterable object. > """ > > if self.sock is None: > if self.auto_open: >> self.connect() > >/usr/lib64/python3.6/http/client.py:964: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f029067b1d0> > > def connect(self): > "Connect to a host on a given (SSL) port." > >> super().connect() > >/usr/lib64/python3.6/http/client.py:1392: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f029067b1d0> > > def connect(self): > """Connect to the host and port specified in __init__.""" > self.sock = self._create_connection( >> (self.host,self.port), self.timeout, self.source_address) > >/usr/lib64/python3.6/http/client.py:936: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >address = ('github.com', 443), timeout = <object object at 0x7f029ed081d0> >source_address = None > > def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, > source_address=None): > """Connect to *address* and return the socket object. > > Convenience function. Connect to *address* (a 2-tuple ``(host, > port)``) and return the socket object. Passing the optional > *timeout* parameter will set the timeout on the socket instance > before attempting to connect. If no *timeout* is supplied, the > global default timeout setting returned by :func:`getdefaulttimeout` > is used. If *source_address* is set it must be a tuple of (host, port) > for the socket to bind as a source address before making the connection. > A host of '' or port 0 tells the OS to use the default. > """ > > host, port = address > err = None >> for res in getaddrinfo(host, port, 0, SOCK_STREAM): > >/usr/lib64/python3.6/socket.py:704: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >host = 'github.com', port = 443, family = 0, type = <SocketKind.SOCK_STREAM: 1> >proto = 0, flags = 0 > > def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): > """Resolve host and port into list of address info entries. > > Translate the host/port argument into a sequence of 5-tuples that contain > all the necessary arguments for creating a socket connected to that service. > host is a domain name, a string representation of an IPv4/v6 address or > None. port is a string service name such as 'http', a numeric port number or > None. By passing None as the value of host and port, you can pass NULL to > the underlying C API. > > The family, type and proto arguments can be optionally specified in order to > narrow the list of addresses returned. Passing zero as a value for each of > these arguments selects the full range of results. > """ > # We override this function since we want to translate the numeric family > # and socket type values to enum constants. > addrlist = [] >> for res in _socket.getaddrinfo(host, port, family, type, proto, flags): >E socket.gaierror: [Errno -3] Temporary failure in name resolution > >/usr/lib64/python3.6/socket.py:745: gaierror > >During handling of the above exception, another exception occurred: > >tmpdir = local('/var/tmp/portage/www-misc/buku-3.7/temp/pytest-of-portage/pytest-0/test_load_chrome_database_Fals0') > > @pytest.fixture() > def bookmark_folder(tmpdir): > # database > zip_url = 'https://github.com/jarun/Buku/files/1319933/bookmarks.zip' > tmp_zip = tmpdir.join('bookmarks.zip') >> extract_all_from_zip_url(zip_url, tmp_zip, tmpdir) > >tests/test_bukuDb.py:1242: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_bukuDb.py:1365: in extract_all_from_zip_url > with urllib.request.urlopen(zip_url) as response, open(tmp_zip.strpath, 'wb') as out_file: >/usr/lib64/python3.6/urllib/request.py:223: in urlopen > return opener.open(url, data, timeout) >/usr/lib64/python3.6/urllib/request.py:526: in open > response = self._open(req, data) >/usr/lib64/python3.6/urllib/request.py:544: in _open > '_open', req) >/usr/lib64/python3.6/urllib/request.py:504: in _call_chain > result = func(*args) >/usr/lib64/python3.6/urllib/request.py:1361: in https_open > context=self._context, check_hostname=self._check_hostname) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <urllib.request.HTTPSHandler object at 0x7f0293153d30> >http_class = <class 'http.client.HTTPSConnection'> >req = <urllib.request.Request object at 0x7f029067b208> >http_conn_args = {'check_hostname': None, 'context': None}, host = 'github.com' >h = <http.client.HTTPSConnection object at 0x7f029067b1d0> > > def do_open(self, http_class, req, **http_conn_args): > """Return an HTTPResponse object for the request, using http_class. > > http_class must implement the HTTPConnection API from http.client. > """ > host = req.host > if not host: > raise URLError('no host given') > > # will parse host:port > h = http_class(host, timeout=req.timeout, **http_conn_args) > h.set_debuglevel(self._debuglevel) > > headers = dict(req.unredirected_hdrs) > headers.update(dict((k, v) for k, v in req.headers.items() > if k not in headers)) > > # TODO(jhylton): Should this be redesigned to handle > # persistent connections? > > # We want to make an HTTP/1.1 request, but the addinfourl > # class isn't prepared to deal with a persistent connection. > # It will try to read all remaining data from the socket, > # which will block while the server waits for the next request. > # So make sure the connection gets closed after the (only) > # request. > headers["Connection"] = "close" > headers = dict((name.title(), val) for name, val in headers.items()) > > if req._tunnel_host: > tunnel_headers = {} > proxy_auth_hdr = "Proxy-Authorization" > if proxy_auth_hdr in headers: > tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] > # Proxy-Authorization should not be sent to origin > # server. > del headers[proxy_auth_hdr] > h.set_tunnel(req._tunnel_host, headers=tunnel_headers) > > try: > try: > h.request(req.get_method(), req.selector, req.data, headers, > encode_chunked=req.has_header('Transfer-encoding')) > except OSError as err: # timeout error >> raise URLError(err) >E urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution> > >/usr/lib64/python3.6/urllib/request.py:1320: URLError >______________ ERROR at setup of test_load_firefox_database[True] ______________ > >self = <urllib.request.HTTPSHandler object at 0x7f0293153d30> >http_class = <class 'http.client.HTTPSConnection'> >req = <urllib.request.Request object at 0x7f0293cd5cc0> >http_conn_args = {'check_hostname': None, 'context': None}, host = 'github.com' >h = <http.client.HTTPSConnection object at 0x7f0295aa72b0> > > def do_open(self, http_class, req, **http_conn_args): > """Return an HTTPResponse object for the request, using http_class. > > http_class must implement the HTTPConnection API from http.client. > """ > host = req.host > if not host: > raise URLError('no host given') > > # will parse host:port > h = http_class(host, timeout=req.timeout, **http_conn_args) > h.set_debuglevel(self._debuglevel) > > headers = dict(req.unredirected_hdrs) > headers.update(dict((k, v) for k, v in req.headers.items() > if k not in headers)) > > # TODO(jhylton): Should this be redesigned to handle > # persistent connections? > > # We want to make an HTTP/1.1 request, but the addinfourl > # class isn't prepared to deal with a persistent connection. > # It will try to read all remaining data from the socket, > # which will block while the server waits for the next request. > # So make sure the connection gets closed after the (only) > # request. > headers["Connection"] = "close" > headers = dict((name.title(), val) for name, val in headers.items()) > > if req._tunnel_host: > tunnel_headers = {} > proxy_auth_hdr = "Proxy-Authorization" > if proxy_auth_hdr in headers: > tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] > # Proxy-Authorization should not be sent to origin > # server. > del headers[proxy_auth_hdr] > h.set_tunnel(req._tunnel_host, headers=tunnel_headers) > > try: > try: > h.request(req.get_method(), req.selector, req.data, headers, >> encode_chunked=req.has_header('Transfer-encoding')) > >/usr/lib64/python3.6/urllib/request.py:1318: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0295aa72b0>, method = 'GET' >url = '/jarun/Buku/files/1319933/bookmarks.zip', body = None >headers = {'Connection': 'close', 'Host': 'github.com', 'User-Agent': 'Python-urllib/3.6'} > > def request(self, method, url, body=None, headers={}, *, > encode_chunked=False): > """Send a complete request to the server.""" >> self._send_request(method, url, body, headers, encode_chunked) > >/usr/lib64/python3.6/http/client.py:1239: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0295aa72b0>, method = 'GET' >url = '/jarun/Buku/files/1319933/bookmarks.zip', body = None >headers = {'Connection': 'close', 'Host': 'github.com', 'User-Agent': 'Python-urllib/3.6'} >encode_chunked = False > > def _send_request(self, method, url, body, headers, encode_chunked): > # Honor explicitly requested Host: and Accept-Encoding: headers. > header_names = frozenset(k.lower() for k in headers) > skips = {} > if 'host' in header_names: > skips['skip_host'] = 1 > if 'accept-encoding' in header_names: > skips['skip_accept_encoding'] = 1 > > self.putrequest(method, url, **skips) > > # chunked encoding will happen if HTTP/1.1 is used and either > # the caller passes encode_chunked=True or the following > # conditions hold: > # 1. content-length has not been explicitly set > # 2. the body is a file or iterable, but not a str or bytes-like > # 3. Transfer-Encoding has NOT been explicitly set by the caller > > if 'content-length' not in header_names: > # only chunk body if not explicitly set for backwards > # compatibility, assuming the client code is already handling the > # chunking > if 'transfer-encoding' not in header_names: > # if content-length cannot be automatically determined, fall > # back to chunked encoding > encode_chunked = False > content_length = self._get_content_length(body, method) > if content_length is None: > if body is not None: > if self.debuglevel > 0: > print('Unable to determine size of %r' % body) > encode_chunked = True > self.putheader('Transfer-Encoding', 'chunked') > else: > self.putheader('Content-Length', str(content_length)) > else: > encode_chunked = False > > for hdr, value in headers.items(): > self.putheader(hdr, value) > if isinstance(body, str): > # RFC 2616 Section 3.7.1 says that text default has a > # default charset of iso-8859-1. > body = _encode(body, 'body') >> self.endheaders(body, encode_chunked=encode_chunked) > >/usr/lib64/python3.6/http/client.py:1285: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0295aa72b0> >message_body = None > > def endheaders(self, message_body=None, *, encode_chunked=False): > """Indicate that the last header line has been sent to the server. > > This method sends the request to the server. The optional message_body > argument can be used to pass a message body associated with the > request. > """ > if self.__state == _CS_REQ_STARTED: > self.__state = _CS_REQ_SENT > else: > raise CannotSendHeader() >> self._send_output(message_body, encode_chunked=encode_chunked) > >/usr/lib64/python3.6/http/client.py:1234: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0295aa72b0> >message_body = None, encode_chunked = False > > def _send_output(self, message_body=None, encode_chunked=False): > """Send the currently buffered request and clear the buffer. > > Appends an extra \\r\\n to the buffer. > A message_body may be specified, to be appended to the request. > """ > self._buffer.extend((b"", b"")) > msg = b"\r\n".join(self._buffer) > del self._buffer[:] >> self.send(msg) > >/usr/lib64/python3.6/http/client.py:1026: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0295aa72b0> >data = b'GET /jarun/Buku/files/1319933/bookmarks.zip HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: github.com\r\nUser-Agent: Python-urllib/3.6\r\nConnection: close\r\n\r\n' > > def send(self, data): > """Send `data' to the server. > ``data`` can be a string object, a bytes object, an array object, a > file-like object that supports a .read() method, or an iterable object. > """ > > if self.sock is None: > if self.auto_open: >> self.connect() > >/usr/lib64/python3.6/http/client.py:964: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0295aa72b0> > > def connect(self): > "Connect to a host on a given (SSL) port." > >> super().connect() > >/usr/lib64/python3.6/http/client.py:1392: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0295aa72b0> > > def connect(self): > """Connect to the host and port specified in __init__.""" > self.sock = self._create_connection( >> (self.host,self.port), self.timeout, self.source_address) > >/usr/lib64/python3.6/http/client.py:936: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >address = ('github.com', 443), timeout = <object object at 0x7f029ed081d0> >source_address = None > > def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, > source_address=None): > """Connect to *address* and return the socket object. > > Convenience function. Connect to *address* (a 2-tuple ``(host, > port)``) and return the socket object. Passing the optional > *timeout* parameter will set the timeout on the socket instance > before attempting to connect. If no *timeout* is supplied, the > global default timeout setting returned by :func:`getdefaulttimeout` > is used. If *source_address* is set it must be a tuple of (host, port) > for the socket to bind as a source address before making the connection. > A host of '' or port 0 tells the OS to use the default. > """ > > host, port = address > err = None >> for res in getaddrinfo(host, port, 0, SOCK_STREAM): > >/usr/lib64/python3.6/socket.py:704: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >host = 'github.com', port = 443, family = 0, type = <SocketKind.SOCK_STREAM: 1> >proto = 0, flags = 0 > > def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): > """Resolve host and port into list of address info entries. > > Translate the host/port argument into a sequence of 5-tuples that contain > all the necessary arguments for creating a socket connected to that service. > host is a domain name, a string representation of an IPv4/v6 address or > None. port is a string service name such as 'http', a numeric port number or > None. By passing None as the value of host and port, you can pass NULL to > the underlying C API. > > The family, type and proto arguments can be optionally specified in order to > narrow the list of addresses returned. Passing zero as a value for each of > these arguments selects the full range of results. > """ > # We override this function since we want to translate the numeric family > # and socket type values to enum constants. > addrlist = [] >> for res in _socket.getaddrinfo(host, port, family, type, proto, flags): >E socket.gaierror: [Errno -3] Temporary failure in name resolution > >/usr/lib64/python3.6/socket.py:745: gaierror > >During handling of the above exception, another exception occurred: > >tmpdir = local('/var/tmp/portage/www-misc/buku-3.7/temp/pytest-of-portage/pytest-0/test_load_firefox_database_Tru0') > > @pytest.fixture() > def bookmark_folder(tmpdir): > # database > zip_url = 'https://github.com/jarun/Buku/files/1319933/bookmarks.zip' > tmp_zip = tmpdir.join('bookmarks.zip') >> extract_all_from_zip_url(zip_url, tmp_zip, tmpdir) > >tests/test_bukuDb.py:1242: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_bukuDb.py:1365: in extract_all_from_zip_url > with urllib.request.urlopen(zip_url) as response, open(tmp_zip.strpath, 'wb') as out_file: >/usr/lib64/python3.6/urllib/request.py:223: in urlopen > return opener.open(url, data, timeout) >/usr/lib64/python3.6/urllib/request.py:526: in open > response = self._open(req, data) >/usr/lib64/python3.6/urllib/request.py:544: in _open > '_open', req) >/usr/lib64/python3.6/urllib/request.py:504: in _call_chain > result = func(*args) >/usr/lib64/python3.6/urllib/request.py:1361: in https_open > context=self._context, check_hostname=self._check_hostname) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <urllib.request.HTTPSHandler object at 0x7f0293153d30> >http_class = <class 'http.client.HTTPSConnection'> >req = <urllib.request.Request object at 0x7f0293cd5cc0> >http_conn_args = {'check_hostname': None, 'context': None}, host = 'github.com' >h = <http.client.HTTPSConnection object at 0x7f0295aa72b0> > > def do_open(self, http_class, req, **http_conn_args): > """Return an HTTPResponse object for the request, using http_class. > > http_class must implement the HTTPConnection API from http.client. > """ > host = req.host > if not host: > raise URLError('no host given') > > # will parse host:port > h = http_class(host, timeout=req.timeout, **http_conn_args) > h.set_debuglevel(self._debuglevel) > > headers = dict(req.unredirected_hdrs) > headers.update(dict((k, v) for k, v in req.headers.items() > if k not in headers)) > > # TODO(jhylton): Should this be redesigned to handle > # persistent connections? > > # We want to make an HTTP/1.1 request, but the addinfourl > # class isn't prepared to deal with a persistent connection. > # It will try to read all remaining data from the socket, > # which will block while the server waits for the next request. > # So make sure the connection gets closed after the (only) > # request. > headers["Connection"] = "close" > headers = dict((name.title(), val) for name, val in headers.items()) > > if req._tunnel_host: > tunnel_headers = {} > proxy_auth_hdr = "Proxy-Authorization" > if proxy_auth_hdr in headers: > tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] > # Proxy-Authorization should not be sent to origin > # server. > del headers[proxy_auth_hdr] > h.set_tunnel(req._tunnel_host, headers=tunnel_headers) > > try: > try: > h.request(req.get_method(), req.selector, req.data, headers, > encode_chunked=req.has_header('Transfer-encoding')) > except OSError as err: # timeout error >> raise URLError(err) >E urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution> > >/usr/lib64/python3.6/urllib/request.py:1320: URLError >_____________ ERROR at setup of test_load_firefox_database[False] ______________ > >self = <urllib.request.HTTPSHandler object at 0x7f0293153d30> >http_class = <class 'http.client.HTTPSConnection'> >req = <urllib.request.Request object at 0x7f0290a26b38> >http_conn_args = {'check_hostname': None, 'context': None}, host = 'github.com' >h = <http.client.HTTPSConnection object at 0x7f0290a26b00> > > def do_open(self, http_class, req, **http_conn_args): > """Return an HTTPResponse object for the request, using http_class. > > http_class must implement the HTTPConnection API from http.client. > """ > host = req.host > if not host: > raise URLError('no host given') > > # will parse host:port > h = http_class(host, timeout=req.timeout, **http_conn_args) > h.set_debuglevel(self._debuglevel) > > headers = dict(req.unredirected_hdrs) > headers.update(dict((k, v) for k, v in req.headers.items() > if k not in headers)) > > # TODO(jhylton): Should this be redesigned to handle > # persistent connections? > > # We want to make an HTTP/1.1 request, but the addinfourl > # class isn't prepared to deal with a persistent connection. > # It will try to read all remaining data from the socket, > # which will block while the server waits for the next request. > # So make sure the connection gets closed after the (only) > # request. > headers["Connection"] = "close" > headers = dict((name.title(), val) for name, val in headers.items()) > > if req._tunnel_host: > tunnel_headers = {} > proxy_auth_hdr = "Proxy-Authorization" > if proxy_auth_hdr in headers: > tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] > # Proxy-Authorization should not be sent to origin > # server. > del headers[proxy_auth_hdr] > h.set_tunnel(req._tunnel_host, headers=tunnel_headers) > > try: > try: > h.request(req.get_method(), req.selector, req.data, headers, >> encode_chunked=req.has_header('Transfer-encoding')) > >/usr/lib64/python3.6/urllib/request.py:1318: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0290a26b00>, method = 'GET' >url = '/jarun/Buku/files/1319933/bookmarks.zip', body = None >headers = {'Connection': 'close', 'Host': 'github.com', 'User-Agent': 'Python-urllib/3.6'} > > def request(self, method, url, body=None, headers={}, *, > encode_chunked=False): > """Send a complete request to the server.""" >> self._send_request(method, url, body, headers, encode_chunked) > >/usr/lib64/python3.6/http/client.py:1239: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0290a26b00>, method = 'GET' >url = '/jarun/Buku/files/1319933/bookmarks.zip', body = None >headers = {'Connection': 'close', 'Host': 'github.com', 'User-Agent': 'Python-urllib/3.6'} >encode_chunked = False > > def _send_request(self, method, url, body, headers, encode_chunked): > # Honor explicitly requested Host: and Accept-Encoding: headers. > header_names = frozenset(k.lower() for k in headers) > skips = {} > if 'host' in header_names: > skips['skip_host'] = 1 > if 'accept-encoding' in header_names: > skips['skip_accept_encoding'] = 1 > > self.putrequest(method, url, **skips) > > # chunked encoding will happen if HTTP/1.1 is used and either > # the caller passes encode_chunked=True or the following > # conditions hold: > # 1. content-length has not been explicitly set > # 2. the body is a file or iterable, but not a str or bytes-like > # 3. Transfer-Encoding has NOT been explicitly set by the caller > > if 'content-length' not in header_names: > # only chunk body if not explicitly set for backwards > # compatibility, assuming the client code is already handling the > # chunking > if 'transfer-encoding' not in header_names: > # if content-length cannot be automatically determined, fall > # back to chunked encoding > encode_chunked = False > content_length = self._get_content_length(body, method) > if content_length is None: > if body is not None: > if self.debuglevel > 0: > print('Unable to determine size of %r' % body) > encode_chunked = True > self.putheader('Transfer-Encoding', 'chunked') > else: > self.putheader('Content-Length', str(content_length)) > else: > encode_chunked = False > > for hdr, value in headers.items(): > self.putheader(hdr, value) > if isinstance(body, str): > # RFC 2616 Section 3.7.1 says that text default has a > # default charset of iso-8859-1. > body = _encode(body, 'body') >> self.endheaders(body, encode_chunked=encode_chunked) > >/usr/lib64/python3.6/http/client.py:1285: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0290a26b00> >message_body = None > > def endheaders(self, message_body=None, *, encode_chunked=False): > """Indicate that the last header line has been sent to the server. > > This method sends the request to the server. The optional message_body > argument can be used to pass a message body associated with the > request. > """ > if self.__state == _CS_REQ_STARTED: > self.__state = _CS_REQ_SENT > else: > raise CannotSendHeader() >> self._send_output(message_body, encode_chunked=encode_chunked) > >/usr/lib64/python3.6/http/client.py:1234: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0290a26b00> >message_body = None, encode_chunked = False > > def _send_output(self, message_body=None, encode_chunked=False): > """Send the currently buffered request and clear the buffer. > > Appends an extra \\r\\n to the buffer. > A message_body may be specified, to be appended to the request. > """ > self._buffer.extend((b"", b"")) > msg = b"\r\n".join(self._buffer) > del self._buffer[:] >> self.send(msg) > >/usr/lib64/python3.6/http/client.py:1026: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0290a26b00> >data = b'GET /jarun/Buku/files/1319933/bookmarks.zip HTTP/1.1\r\nAccept-Encoding: identity\r\nHost: github.com\r\nUser-Agent: Python-urllib/3.6\r\nConnection: close\r\n\r\n' > > def send(self, data): > """Send `data' to the server. > ``data`` can be a string object, a bytes object, an array object, a > file-like object that supports a .read() method, or an iterable object. > """ > > if self.sock is None: > if self.auto_open: >> self.connect() > >/usr/lib64/python3.6/http/client.py:964: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0290a26b00> > > def connect(self): > "Connect to a host on a given (SSL) port." > >> super().connect() > >/usr/lib64/python3.6/http/client.py:1392: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <http.client.HTTPSConnection object at 0x7f0290a26b00> > > def connect(self): > """Connect to the host and port specified in __init__.""" > self.sock = self._create_connection( >> (self.host,self.port), self.timeout, self.source_address) > >/usr/lib64/python3.6/http/client.py:936: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >address = ('github.com', 443), timeout = <object object at 0x7f029ed081d0> >source_address = None > > def create_connection(address, timeout=_GLOBAL_DEFAULT_TIMEOUT, > source_address=None): > """Connect to *address* and return the socket object. > > Convenience function. Connect to *address* (a 2-tuple ``(host, > port)``) and return the socket object. Passing the optional > *timeout* parameter will set the timeout on the socket instance > before attempting to connect. If no *timeout* is supplied, the > global default timeout setting returned by :func:`getdefaulttimeout` > is used. If *source_address* is set it must be a tuple of (host, port) > for the socket to bind as a source address before making the connection. > A host of '' or port 0 tells the OS to use the default. > """ > > host, port = address > err = None >> for res in getaddrinfo(host, port, 0, SOCK_STREAM): > >/usr/lib64/python3.6/socket.py:704: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >host = 'github.com', port = 443, family = 0, type = <SocketKind.SOCK_STREAM: 1> >proto = 0, flags = 0 > > def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): > """Resolve host and port into list of address info entries. > > Translate the host/port argument into a sequence of 5-tuples that contain > all the necessary arguments for creating a socket connected to that service. > host is a domain name, a string representation of an IPv4/v6 address or > None. port is a string service name such as 'http', a numeric port number or > None. By passing None as the value of host and port, you can pass NULL to > the underlying C API. > > The family, type and proto arguments can be optionally specified in order to > narrow the list of addresses returned. Passing zero as a value for each of > these arguments selects the full range of results. > """ > # We override this function since we want to translate the numeric family > # and socket type values to enum constants. > addrlist = [] >> for res in _socket.getaddrinfo(host, port, family, type, proto, flags): >E socket.gaierror: [Errno -3] Temporary failure in name resolution > >/usr/lib64/python3.6/socket.py:745: gaierror > >During handling of the above exception, another exception occurred: > >tmpdir = local('/var/tmp/portage/www-misc/buku-3.7/temp/pytest-of-portage/pytest-0/test_load_firefox_database_Fal0') > > @pytest.fixture() > def bookmark_folder(tmpdir): > # database > zip_url = 'https://github.com/jarun/Buku/files/1319933/bookmarks.zip' > tmp_zip = tmpdir.join('bookmarks.zip') >> extract_all_from_zip_url(zip_url, tmp_zip, tmpdir) > >tests/test_bukuDb.py:1242: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_bukuDb.py:1365: in extract_all_from_zip_url > with urllib.request.urlopen(zip_url) as response, open(tmp_zip.strpath, 'wb') as out_file: >/usr/lib64/python3.6/urllib/request.py:223: in urlopen > return opener.open(url, data, timeout) >/usr/lib64/python3.6/urllib/request.py:526: in open > response = self._open(req, data) >/usr/lib64/python3.6/urllib/request.py:544: in _open > '_open', req) >/usr/lib64/python3.6/urllib/request.py:504: in _call_chain > result = func(*args) >/usr/lib64/python3.6/urllib/request.py:1361: in https_open > context=self._context, check_hostname=self._check_hostname) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <urllib.request.HTTPSHandler object at 0x7f0293153d30> >http_class = <class 'http.client.HTTPSConnection'> >req = <urllib.request.Request object at 0x7f0290a26b38> >http_conn_args = {'check_hostname': None, 'context': None}, host = 'github.com' >h = <http.client.HTTPSConnection object at 0x7f0290a26b00> > > def do_open(self, http_class, req, **http_conn_args): > """Return an HTTPResponse object for the request, using http_class. > > http_class must implement the HTTPConnection API from http.client. > """ > host = req.host > if not host: > raise URLError('no host given') > > # will parse host:port > h = http_class(host, timeout=req.timeout, **http_conn_args) > h.set_debuglevel(self._debuglevel) > > headers = dict(req.unredirected_hdrs) > headers.update(dict((k, v) for k, v in req.headers.items() > if k not in headers)) > > # TODO(jhylton): Should this be redesigned to handle > # persistent connections? > > # We want to make an HTTP/1.1 request, but the addinfourl > # class isn't prepared to deal with a persistent connection. > # It will try to read all remaining data from the socket, > # which will block while the server waits for the next request. > # So make sure the connection gets closed after the (only) > # request. > headers["Connection"] = "close" > headers = dict((name.title(), val) for name, val in headers.items()) > > if req._tunnel_host: > tunnel_headers = {} > proxy_auth_hdr = "Proxy-Authorization" > if proxy_auth_hdr in headers: > tunnel_headers[proxy_auth_hdr] = headers[proxy_auth_hdr] > # Proxy-Authorization should not be sent to origin > # server. > del headers[proxy_auth_hdr] > h.set_tunnel(req._tunnel_host, headers=tunnel_headers) > > try: > try: > h.request(req.get_method(), req.selector, req.data, headers, > encode_chunked=req.has_header('Transfer-encoding')) > except OSError as err: # timeout error >> raise URLError(err) >E urllib.error.URLError: <urlopen error [Errno -3] Temporary failure in name resolution> > >/usr/lib64/python3.6/urllib/request.py:1320: URLError >=================================== FAILURES =================================== >__________ test_network_handler_with_url[http://example.com-exp_res1] __________ > >url = 'http://example.com', exp_res = ('Example Domain', 0, 0) > > @pytest.mark.parametrize( > 'url, exp_res', > [ > ['http://example.com.', ('', 0, 1)], > ['http://example.com', ('Example Domain', 0, 0)], > ['http://example.com/page1.txt', (('', 1, 0))], > ['about:new_page', (('', 0, 1))], > ['chrome://version/', (('', 0, 1))], > ] > ) > def test_network_handler_with_url(url, exp_res): > """test func.""" > import buku > import urllib3 > buku.urllib3 = urllib3 > buku.myproxy = None > res = buku.network_handler(url) >> assert res == exp_res >E AssertionError: assert ('', 0, 0) == ('Example Domain', 0, 0) >E At index 0 diff: '' != 'Example Domain' >E Full diff: >E - ('', 0, 0) >E + ('Example Domain', 0, 0) > >tests/test_buku.py:565: AssertionError >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293c01860>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293be60b8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293c016a0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293c014e0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >__________________________ TestBukuDb.test_refreshdb ___________________________ > >self = <tests.test_bukuDb.TestBukuDb testMethod=test_refreshdb> > > @pytest.mark.slowtest > def test_refreshdb(self): > self.bdb.add_rec("https://www.google.com/ncr", "?") > self.bdb.refreshdb(1, 1) > from_db = self.bdb.get_rec_by_id(1) >> self.assertEqual(from_db[2], "Google") >E AssertionError: '?' != 'Google' >E - ? >E + Google > >tests/test_bukuDb.py:256: AssertionError >----------------------------- Captured stdout call ----------------------------- >Index 1: No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f0290b2fc50>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /ncr >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f0290b2fa58>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /ncr >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f0290b2f0f0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /ncr >buku.py 2920 ERROR network_handler(): HTTPSConnectionPool(host='www.google.com', port=443): Max retries exceeded with url: /ncr (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f0290b14cc0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >__________________________ TestBukuDb.test_tnyfy_url ___________________________ > >self = <tests.test_bukuDb.TestBukuDb testMethod=test_tnyfy_url> > > def test_tnyfy_url(self): > # shorten a well-known url > shorturl = self.bdb.tnyfy_url(url='https://www.google.com', shorten=True) >> self.assertEqual(shorturl, 'http://tny.im/yt') >E AssertionError: None != 'http://tny.im/yt' > >tests/test_bukuDb.py:638: AssertionError >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f0290b09d30>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /yourls-api.php?action=shorturl&format=simple&url=https%3A%2F%2Fwww.google.com >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f0290b09588>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /yourls-api.php?action=shorturl&format=simple&url=https%3A%2F%2Fwww.google.com >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f0290b09470>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': /yourls-api.php?action=shorturl&format=simple&url=https%3A%2F%2Fwww.google.com >buku.py 2373 ERROR HTTPSConnectionPool(host='tny.im', port=443): Max retries exceeded with url: /yourls-api.php?action=shorturl&format=simple&url=https%3A%2F%2Fwww.google.com (Caused by NewConnectionError('<urllib3.connection.VerifiedHTTPSConnection object at 0x7f0290b095c0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >___________________ test_add_rec_exec_arg[kwargs0-exp_arg0] ____________________ > >kwargs = {'url': 'example.com'} >exp_arg = ('example.com', 'Example Domain', ',', '', 0) > > @pytest.mark.parametrize( > "kwargs, exp_arg", > [ > [ > {'url': 'example.com'}, > ('example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com'}, > ('http://example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'immutable': 1}, > ('http://example.com', 'Example Domain', ',', '', 1) > ], > [ > {'url': 'http://example.com', 'desc': 'randomdesc'}, > ('http://example.com', 'Example Domain', ',', 'randomdesc', 0) > ], > [ > {'url': 'http://example.com', 'title_in': 'randomtitle'}, > ('http://example.com', 'randomtitle', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'tags_in': 'tag1'}, > ('http://example.com', 'Example Domain', ',tag1', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1,'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > ] > ) > def test_add_rec_exec_arg(kwargs, exp_arg): > """test func.""" > bdb = BukuDb() > bdb.cur = mock.Mock() > bdb.get_rec_id = mock.Mock(return_value=-1) > bdb.add_rec(**kwargs) >> assert bdb.cur.execute.call_args[0][1] == exp_arg >E AssertionError: assert ('example.com...', ',', '', 0) == ('example.com'...', ',', '', 0) >E At index 1 diff: '' != 'Example Domain' >E Full diff: >E - ('example.com', '', ',', '', 0) >E + ('example.com', 'Example Domain', ',', '', 0) >E ? ++++++++++++++ > >tests/test_bukuDb.py:999: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b28a90>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b287f0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b28ba8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293167f60>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >___________________ test_add_rec_exec_arg[kwargs1-exp_arg1] ____________________ > >kwargs = {'url': 'http://example.com'} >exp_arg = ('http://example.com', 'Example Domain', ',', '', 0) > > @pytest.mark.parametrize( > "kwargs, exp_arg", > [ > [ > {'url': 'example.com'}, > ('example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com'}, > ('http://example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'immutable': 1}, > ('http://example.com', 'Example Domain', ',', '', 1) > ], > [ > {'url': 'http://example.com', 'desc': 'randomdesc'}, > ('http://example.com', 'Example Domain', ',', 'randomdesc', 0) > ], > [ > {'url': 'http://example.com', 'title_in': 'randomtitle'}, > ('http://example.com', 'randomtitle', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'tags_in': 'tag1'}, > ('http://example.com', 'Example Domain', ',tag1', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1,'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > ] > ) > def test_add_rec_exec_arg(kwargs, exp_arg): > """test func.""" > bdb = BukuDb() > bdb.cur = mock.Mock() > bdb.get_rec_id = mock.Mock(return_value=-1) > bdb.add_rec(**kwargs) >> assert bdb.cur.execute.call_args[0][1] == exp_arg >E AssertionError: assert ('http://exam...', ',', '', 0) == ('http://examp...', ',', '', 0) >E At index 1 diff: '' != 'Example Domain' >E Full diff: >E - ('http://example.com', '', ',', '', 0) >E + ('http://example.com', 'Example Domain', ',', '', 0) >E ? ++++++++++++++ > >tests/test_bukuDb.py:999: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293cd5eb8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293cd5e80>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293c015c0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293c01f98>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >___________________ test_add_rec_exec_arg[kwargs2-exp_arg2] ____________________ > >kwargs = {'immutable': 1, 'url': 'http://example.com'} >exp_arg = ('http://example.com', 'Example Domain', ',', '', 1) > > @pytest.mark.parametrize( > "kwargs, exp_arg", > [ > [ > {'url': 'example.com'}, > ('example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com'}, > ('http://example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'immutable': 1}, > ('http://example.com', 'Example Domain', ',', '', 1) > ], > [ > {'url': 'http://example.com', 'desc': 'randomdesc'}, > ('http://example.com', 'Example Domain', ',', 'randomdesc', 0) > ], > [ > {'url': 'http://example.com', 'title_in': 'randomtitle'}, > ('http://example.com', 'randomtitle', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'tags_in': 'tag1'}, > ('http://example.com', 'Example Domain', ',tag1', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1,'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > ] > ) > def test_add_rec_exec_arg(kwargs, exp_arg): > """test func.""" > bdb = BukuDb() > bdb.cur = mock.Mock() > bdb.get_rec_id = mock.Mock(return_value=-1) > bdb.add_rec(**kwargs) >> assert bdb.cur.execute.call_args[0][1] == exp_arg >E AssertionError: assert ('http://exam...', ',', '', 1) == ('http://examp...', ',', '', 1) >E At index 1 diff: '' != 'Example Domain' >E Full diff: >E - ('http://example.com', '', ',', '', 1) >E + ('http://example.com', 'Example Domain', ',', '', 1) >E ? ++++++++++++++ > >tests/test_bukuDb.py:999: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293c16400>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293c161d0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293c16cf8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293c16a58>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >___________________ test_add_rec_exec_arg[kwargs3-exp_arg3] ____________________ > >kwargs = {'desc': 'randomdesc', 'url': 'http://example.com'} >exp_arg = ('http://example.com', 'Example Domain', ',', 'randomdesc', 0) > > @pytest.mark.parametrize( > "kwargs, exp_arg", > [ > [ > {'url': 'example.com'}, > ('example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com'}, > ('http://example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'immutable': 1}, > ('http://example.com', 'Example Domain', ',', '', 1) > ], > [ > {'url': 'http://example.com', 'desc': 'randomdesc'}, > ('http://example.com', 'Example Domain', ',', 'randomdesc', 0) > ], > [ > {'url': 'http://example.com', 'title_in': 'randomtitle'}, > ('http://example.com', 'randomtitle', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'tags_in': 'tag1'}, > ('http://example.com', 'Example Domain', ',tag1', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1,'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > ] > ) > def test_add_rec_exec_arg(kwargs, exp_arg): > """test func.""" > bdb = BukuDb() > bdb.cur = mock.Mock() > bdb.get_rec_id = mock.Mock(return_value=-1) > bdb.add_rec(**kwargs) >> assert bdb.cur.execute.call_args[0][1] == exp_arg >E AssertionError: assert ('http://exam...andomdesc', 0) == ('http://examp...andomdesc', 0) >E At index 1 diff: '' != 'Example Domain' >E Full diff: >E - ('http://example.com', '', ',', 'randomdesc', 0) >E + ('http://example.com', 'Example Domain', ',', 'randomdesc', 0) >E ? ++++++++++++++ > >tests/test_bukuDb.py:999: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0294689a58>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f02946890f0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0294689470>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f02946894e0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >___________________ test_add_rec_exec_arg[kwargs5-exp_arg5] ____________________ > >kwargs = {'tags_in': 'tag1', 'url': 'http://example.com'} >exp_arg = ('http://example.com', 'Example Domain', ',tag1', '', 0) > > @pytest.mark.parametrize( > "kwargs, exp_arg", > [ > [ > {'url': 'example.com'}, > ('example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com'}, > ('http://example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'immutable': 1}, > ('http://example.com', 'Example Domain', ',', '', 1) > ], > [ > {'url': 'http://example.com', 'desc': 'randomdesc'}, > ('http://example.com', 'Example Domain', ',', 'randomdesc', 0) > ], > [ > {'url': 'http://example.com', 'title_in': 'randomtitle'}, > ('http://example.com', 'randomtitle', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'tags_in': 'tag1'}, > ('http://example.com', 'Example Domain', ',tag1', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1,'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > ] > ) > def test_add_rec_exec_arg(kwargs, exp_arg): > """test func.""" > bdb = BukuDb() > bdb.cur = mock.Mock() > bdb.get_rec_id = mock.Mock(return_value=-1) > bdb.add_rec(**kwargs) >> assert bdb.cur.execute.call_args[0][1] == exp_arg >E AssertionError: assert ('http://exam...,tag1', '', 0) == ('http://examp...,tag1', '', 0) >E At index 1 diff: '' != 'Example Domain' >E Full diff: >E - ('http://example.com', '', ',tag1', '', 0) >E + ('http://example.com', 'Example Domain', ',tag1', '', 0) >E ? ++++++++++++++ > >tests/test_bukuDb.py:999: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bbb3c8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bbb1d0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293153eb8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293153a20>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >___________________ test_add_rec_exec_arg[kwargs6-exp_arg6] ____________________ > >kwargs = {'tags_in': ',tag1', 'url': 'http://example.com'} >exp_arg = ('http://example.com', 'Example Domain', ',tag1,', '', 0) > > @pytest.mark.parametrize( > "kwargs, exp_arg", > [ > [ > {'url': 'example.com'}, > ('example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com'}, > ('http://example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'immutable': 1}, > ('http://example.com', 'Example Domain', ',', '', 1) > ], > [ > {'url': 'http://example.com', 'desc': 'randomdesc'}, > ('http://example.com', 'Example Domain', ',', 'randomdesc', 0) > ], > [ > {'url': 'http://example.com', 'title_in': 'randomtitle'}, > ('http://example.com', 'randomtitle', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'tags_in': 'tag1'}, > ('http://example.com', 'Example Domain', ',tag1', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1,'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > ] > ) > def test_add_rec_exec_arg(kwargs, exp_arg): > """test func.""" > bdb = BukuDb() > bdb.cur = mock.Mock() > bdb.get_rec_id = mock.Mock(return_value=-1) > bdb.add_rec(**kwargs) >> assert bdb.cur.execute.call_args[0][1] == exp_arg >E AssertionError: assert ('http://exam...tag1,', '', 0) == ('http://examp...tag1,', '', 0) >E At index 1 diff: '' != 'Example Domain' >E Full diff: >E - ('http://example.com', '', ',tag1,', '', 0) >E + ('http://example.com', 'Example Domain', ',tag1,', '', 0) >E ? ++++++++++++++ > >tests/test_bukuDb.py:999: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b0c438>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b0c2e8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b0cc18>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b0c390>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >___________________ test_add_rec_exec_arg[kwargs7-exp_arg7] ____________________ > >kwargs = {'tags_in': ',tag1,', 'url': 'http://example.com'} >exp_arg = ('http://example.com', 'Example Domain', ',tag1,', '', 0) > > @pytest.mark.parametrize( > "kwargs, exp_arg", > [ > [ > {'url': 'example.com'}, > ('example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com'}, > ('http://example.com', 'Example Domain', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'immutable': 1}, > ('http://example.com', 'Example Domain', ',', '', 1) > ], > [ > {'url': 'http://example.com', 'desc': 'randomdesc'}, > ('http://example.com', 'Example Domain', ',', 'randomdesc', 0) > ], > [ > {'url': 'http://example.com', 'title_in': 'randomtitle'}, > ('http://example.com', 'randomtitle', ',', '', 0) > ], > [ > {'url': 'http://example.com', 'tags_in': 'tag1'}, > ('http://example.com', 'Example Domain', ',tag1', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > [ > {'url': 'http://example.com', 'tags_in': ',tag1,'}, > ('http://example.com', 'Example Domain', ',tag1,', '', 0), > ], > ] > ) > def test_add_rec_exec_arg(kwargs, exp_arg): > """test func.""" > bdb = BukuDb() > bdb.cur = mock.Mock() > bdb.get_rec_id = mock.Mock(return_value=-1) > bdb.add_rec(**kwargs) >> assert bdb.cur.execute.call_args[0][1] == exp_arg >E AssertionError: assert ('http://exam...tag1,', '', 0) == ('http://examp...tag1,', '', 0) >E At index 1 diff: '' != 'Example Domain' >E Full diff: >E - ('http://example.com', '', ',tag1,', '', 0) >E + ('http://example.com', 'Example Domain', ',tag1,', '', 0) >E ? ++++++++++++++ > >tests/test_bukuDb.py:999: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290d7f438>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290d7fb00>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290d7f860>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290d7f828>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) > test_update_rec_exec_arg[kwargs0-UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?-exp_arguments0] > >caplog = <_pytest.logging.LogCaptureFixture object at 0x7f0290b0c080> >kwargs = {'index': 1, 'url': 'http://example.com'} >exp_query = 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?' >exp_arguments = ['http://example.com', 'Example Domain', 1] > > @pytest.mark.parametrize( > 'kwargs, exp_query, exp_arguments', > [ > [ > {'index': 1, 'url': 'http://example.com'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'title_in': 'randomtitle'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'randomtitle', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': 'tag1'}, > 'UPDATE bookmarks SET URL = ?, tags = ?, metadata = ? WHERE id = ?', > ['http://example.com', ',tag1', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': '+,tag1'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': '-,tag1'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'desc': 'randomdesc'}, > 'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'randomdesc', 'Example Domain', 1] > > ], > ] > ) > def test_update_rec_exec_arg(caplog, kwargs, exp_query, exp_arguments): > """test method.""" > bdb = BukuDb() > res = bdb.update_rec(**kwargs) > assert res > exp_log = 'query: "{}", args: {}'.format(exp_query, exp_arguments) > try: >> assert caplog.records[-1].getMessage() == exp_log >E assert "network_hand...esolution',))" == 'query: "UPDAT... Domain\', 1]' >E - network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b0e748>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >E + query: "UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?", args: ['http://example.com', 'Example Domain', 1] > >tests/test_bukuDb.py:1059: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b0eeb8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b0e668>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b0e7f0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0290b0e748>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) > test_update_rec_exec_arg[kwargs2-UPDATE bookmarks SET URL = ?, tags = ?, metadata = ? WHERE id = ?-exp_arguments2] > >caplog = <_pytest.logging.LogCaptureFixture object at 0x7f0293bb5160> >kwargs = {'index': 1, 'tags_in': 'tag1', 'url': 'http://example.com'} >exp_query = 'UPDATE bookmarks SET URL = ?, tags = ?, metadata = ? WHERE id = ?' >exp_arguments = ['http://example.com', ',tag1', 'Example Domain', 1] > > @pytest.mark.parametrize( > 'kwargs, exp_query, exp_arguments', > [ > [ > {'index': 1, 'url': 'http://example.com'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'title_in': 'randomtitle'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'randomtitle', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': 'tag1'}, > 'UPDATE bookmarks SET URL = ?, tags = ?, metadata = ? WHERE id = ?', > ['http://example.com', ',tag1', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': '+,tag1'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': '-,tag1'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'desc': 'randomdesc'}, > 'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'randomdesc', 'Example Domain', 1] > > ], > ] > ) > def test_update_rec_exec_arg(caplog, kwargs, exp_query, exp_arguments): > """test method.""" > bdb = BukuDb() > res = bdb.update_rec(**kwargs) > assert res > exp_log = 'query: "{}", args: {}'.format(exp_query, exp_arguments) > try: >> assert caplog.records[-1].getMessage() == exp_log >E assert "network_hand...esolution',))" == 'query: "UPDAT... Domain\', 1]' >E - network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bb5a90>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >E + query: "UPDATE bookmarks SET URL = ?, tags = ?, metadata = ? WHERE id = ?", args: ['http://example.com', ',tag1', 'Example Domain', 1] > >tests/test_bukuDb.py:1059: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bb51d0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bb5cc0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bb5e80>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bb5a90>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) > test_update_rec_exec_arg[kwargs3-UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?-exp_arguments3] > >caplog = <_pytest.logging.LogCaptureFixture object at 0x7f0293bd6438> >kwargs = {'index': 1, 'tags_in': '+,tag1', 'url': 'http://example.com'} >exp_query = 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?' >exp_arguments = ['http://example.com', 'Example Domain', 1] > > @pytest.mark.parametrize( > 'kwargs, exp_query, exp_arguments', > [ > [ > {'index': 1, 'url': 'http://example.com'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'title_in': 'randomtitle'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'randomtitle', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': 'tag1'}, > 'UPDATE bookmarks SET URL = ?, tags = ?, metadata = ? WHERE id = ?', > ['http://example.com', ',tag1', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': '+,tag1'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': '-,tag1'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'desc': 'randomdesc'}, > 'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'randomdesc', 'Example Domain', 1] > > ], > ] > ) > def test_update_rec_exec_arg(caplog, kwargs, exp_query, exp_arguments): > """test method.""" > bdb = BukuDb() > res = bdb.update_rec(**kwargs) > assert res > exp_log = 'query: "{}", args: {}'.format(exp_query, exp_arguments) > try: >> assert caplog.records[-1].getMessage() == exp_log >E assert "network_hand...esolution',))" == 'query: "UPDAT... Domain\', 1]' >E - network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bd6710>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >E + query: "UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?", args: ['http://example.com', 'Example Domain', 1] > >tests/test_bukuDb.py:1059: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bd6080>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bd6898>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bd6278>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bd6710>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) > test_update_rec_exec_arg[kwargs4-UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?-exp_arguments4] > >caplog = <_pytest.logging.LogCaptureFixture object at 0x7f0293bf4898> >kwargs = {'index': 1, 'tags_in': '-,tag1', 'url': 'http://example.com'} >exp_query = 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?' >exp_arguments = ['http://example.com', 'Example Domain', 1] > > @pytest.mark.parametrize( > 'kwargs, exp_query, exp_arguments', > [ > [ > {'index': 1, 'url': 'http://example.com'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'title_in': 'randomtitle'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'randomtitle', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': 'tag1'}, > 'UPDATE bookmarks SET URL = ?, tags = ?, metadata = ? WHERE id = ?', > ['http://example.com', ',tag1', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': '+,tag1'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': '-,tag1'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'desc': 'randomdesc'}, > 'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'randomdesc', 'Example Domain', 1] > > ], > ] > ) > def test_update_rec_exec_arg(caplog, kwargs, exp_query, exp_arguments): > """test method.""" > bdb = BukuDb() > res = bdb.update_rec(**kwargs) > assert res > exp_log = 'query: "{}", args: {}'.format(exp_query, exp_arguments) > try: >> assert caplog.records[-1].getMessage() == exp_log >E assert "network_hand...esolution',))" == 'query: "UPDAT... Domain\', 1]' >E - network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bd65f8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >E + query: "UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?", args: ['http://example.com', 'Example Domain', 1] > >tests/test_bukuDb.py:1059: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bf4978>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bf4e80>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bf4e10>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293bd65f8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) > test_update_rec_exec_arg[kwargs5-UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?-exp_arguments5] > >caplog = <_pytest.logging.LogCaptureFixture object at 0x7f0293cd5e80> >kwargs = {'desc': 'randomdesc', 'index': 1, 'url': 'http://example.com'} >exp_query = 'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?' >exp_arguments = ['http://example.com', 'randomdesc', 'Example Domain', 1] > > @pytest.mark.parametrize( > 'kwargs, exp_query, exp_arguments', > [ > [ > {'index': 1, 'url': 'http://example.com'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'title_in': 'randomtitle'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'randomtitle', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': 'tag1'}, > 'UPDATE bookmarks SET URL = ?, tags = ?, metadata = ? WHERE id = ?', > ['http://example.com', ',tag1', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': '+,tag1'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'tags_in': '-,tag1'}, > 'UPDATE bookmarks SET URL = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'Example Domain', 1] > > ], > [ > {'index': 1, 'url': 'http://example.com', 'desc': 'randomdesc'}, > 'UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?', > ['http://example.com', 'randomdesc', 'Example Domain', 1] > > ], > ] > ) > def test_update_rec_exec_arg(caplog, kwargs, exp_query, exp_arguments): > """test method.""" > bdb = BukuDb() > res = bdb.update_rec(**kwargs) > assert res > exp_log = 'query: "{}", args: {}'.format(exp_query, exp_arguments) > try: >> assert caplog.records[-1].getMessage() == exp_log >E assert "network_hand...esolution',))" == 'query: "UPDAT... Domain\', 1]' >E - network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293151ac8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >E + query: "UPDATE bookmarks SET URL = ?, desc = ?, metadata = ? WHERE id = ?", args: ['http://example.com', 'randomdesc', 'Example Domain', 1] > >tests/test_bukuDb.py:1059: AssertionError >----------------------------- Captured stdout call ----------------------------- >No title > >------------------------------ Captured log call ------------------------------- >connectionpool.py 662 WARNING Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293c46080>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f02931515f8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >connectionpool.py 662 WARNING Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293151f60>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)': / >buku.py 2920 ERROR network_handler(): HTTPConnectionPool(host='example.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f0293151ac8>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution',)) >=============================== warnings summary =============================== >tests/test_bukuDb.py:308 > /var/tmp/portage/www-misc/buku-3.7/work/buku-3.7/tests/test_bukuDb.py:308: DeprecationWarning: invalid escape sequence \. > url_search = re.match('https?://(.*)?\..*', bookmark[0]).group(1) > >-- Docs: https://docs.pytest.org/en/latest/warnings.html >==== 15 failed, 240 passed, 6 skipped, 1 warnings, 4 error in 9.62 seconds ===== > * ERROR: www-misc/buku-3.7::gentoo failed (test phase): > * (no error message) > * > * Call stack: > * ebuild.sh, line 124: Called src_test > * environment, line 2707: Called distutils-r1_src_test > * environment, line 926: Called _distutils-r1_run_foreach_impl 'python_test' > * environment, line 365: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' > * environment, line 2232: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 1597: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 1595: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' > * environment, line 577: Called distutils-r1_run_phase 'python_test' > * environment, line 857: Called python_test > * environment, line 2609: Called die > * The specific snippet of code: > * py.test -v tests/test_* || die > * > * If you need support, post the output of `emerge --info '=www-misc/buku-3.7::gentoo'`, > * the complete build log and the output of `emerge -pqv '=www-misc/buku-3.7::gentoo'`. > * The complete build log is located at '/var/log/portage/www-misc:buku-3.7:20190115-225525.log'. > * For convenience, a symlink to the build log is located at '/var/tmp/portage/www-misc/buku-3.7/temp/build.log'. > * The ebuild environment file is located at '/var/tmp/portage/www-misc/buku-3.7/temp/environment'. > * Working directory: '/var/tmp/portage/www-misc/buku-3.7/work/buku-3.7' > * S: '/var/tmp/portage/www-misc/buku-3.7/work/buku-3.7'
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 675618
:
561496
|
561498
|
561500
|
561502
|
561504
|
561506
| 561508