236236 },
237237}
238238
239+ skip_if_offline = pytest .mark .skipif (
240+ bool (os .getenv ("OFFLINE" )), reason = "OFFLINE environ requested offline-only"
241+ )
242+
239243
240244def get_pytest_param (name , * fields ):
241245 args = [ZIMS_DATA [name ].get (field , f"MISSING-VALUE { field } " ) for field in fields ]
@@ -290,6 +294,7 @@ def test_open_badfile(tmpdir):
290294 Archive (fpath )
291295
292296
297+ @skip_if_offline
293298def test_content_ref_keep (all_zims ):
294299 """Get the memoryview on a content and loose the reference on the article.
295300 We try to load a lot of other articles to detect possible use of dandling pointer
@@ -319,6 +324,7 @@ def get_content():
319324 )
320325
321326
327+ @skip_if_offline
322328@pytest .mark .parametrize (
323329 * parametrize_for (["filename" , "filesize" , "new_ns" , "mutlipart" , "zim_uuid" ])
324330)
@@ -342,6 +348,7 @@ def test_reader_archive(all_zims, filename, filesize, new_ns, mutlipart, zim_uui
342348 assert zim .uuid .hex == zim_uuid
343349
344350
351+ @skip_if_offline
345352@pytest .mark .parametrize (
346353 * parametrize_for (
347354 ["filename" , "metadata_keys" , "test_metadata" , "test_metadata_value" ]
@@ -362,6 +369,7 @@ def test_reader_metadata(
362369 assert item .size > 1
363370
364371
372+ @skip_if_offline
365373@pytest .mark .parametrize (
366374 * parametrize_for (["filename" , "new_ns" , "has_main_entry" , "has_favicon_entry" ])
367375)
@@ -397,6 +405,7 @@ def test_reader_main_favicon_entries(
397405 assert zim .get_metadata_item ("Illustration_48x48@1" ).mimetype == "image/png"
398406
399407
408+ @skip_if_offline
400409@pytest .mark .parametrize (
401410 * parametrize_for (["filename" , "has_fulltext_index" , "has_title_index" ])
402411)
@@ -408,6 +417,7 @@ def test_reader_has_index(all_zims, filename, has_fulltext_index, has_title_inde
408417 assert zim .has_title_index is has_title_index
409418
410419
420+ @skip_if_offline
411421@pytest .mark .parametrize (* parametrize_for (["filename" , "has_checksum" , "is_valid" ]))
412422def test_reader_checksum (all_zims , filename , has_checksum , is_valid ):
413423 zim = Archive (all_zims / filename )
@@ -420,6 +430,7 @@ def test_reader_checksum(all_zims, filename, has_checksum, is_valid):
420430 assert zim .check () is is_valid
421431
422432
433+ @skip_if_offline
423434@pytest .mark .parametrize (
424435 * parametrize_for (
425436 [
@@ -470,6 +481,7 @@ def test_reader_suggest_search(
470481 assert list (suggestion .getResults (0 , suggestion_count )) == suggestion_result
471482
472483
484+ @skip_if_offline
473485@pytest .mark .parametrize (
474486 * parametrize_for (
475487 [
@@ -525,6 +537,7 @@ def test_reader_get_entries(
525537 assert zim .get_entry_by_title (test_title ).path == entry .path
526538
527539
540+ @skip_if_offline
528541@pytest .mark .parametrize (
529542 * parametrize_for (["filename" , "test_redirect" , "test_redirect_to" ])
530543)
@@ -545,6 +558,7 @@ def test_reader_redirect(all_zims, filename, test_redirect, test_redirect_to):
545558 target_entry .get_redirect_entry ().get_redirect_entry ()
546559
547560
561+ @skip_if_offline
548562@pytest .mark .parametrize (* parametrize_for (["filename" ]))
549563def test_reader_by_id (all_zims , filename ):
550564 zim = Archive (all_zims / filename )
@@ -555,6 +569,7 @@ def test_reader_by_id(all_zims, filename):
555569 assert zim ._get_entry_by_id (index ).get_item ()._index >= 0
556570
557571
572+ @skip_if_offline
558573def test_archive_equality (all_zims ):
559574 class Different :
560575 def __init__ (self , filename ):
0 commit comments