File tree Expand file tree Collapse file tree 2 files changed +14
-1
lines changed
Expand file tree Collapse file tree 2 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -83,7 +83,11 @@ def __init__(
8383 elif mode == MODE_FD :
8484 self ._buffer = database .read () # type: ignore[union-attr]
8585 self ._buffer_size = len (self ._buffer ) # type: ignore[arg-type]
86- filename = database .name # type: ignore[union-attr]
86+ # io buffers are not guaranteed to have a name attribute
87+ if hasattr (database , "name" ):
88+ filename = database .name # type: ignore[union-attr]
89+ else :
90+ filename = f"<{ type (database )} >"
8791 else :
8892 msg = (
8993 f"Unsupported open mode ({ mode } ). Only MODE_AUTO, MODE_FILE, "
Original file line number Diff line number Diff line change 11from __future__ import annotations
22
33import ipaddress
4+ import io
45import multiprocessing
56import os
67import pathlib
@@ -524,6 +525,14 @@ def test_closed_metadata(self) -> None:
524525 else :
525526 self .assertIsNotNone (metadata , "pure Python implementation returns value" )
526527
528+ def test_reading_from_buffer (self ) -> None :
529+ filename = "tests/data/test-data/MaxMind-DB-test-ipv4-24.mmdb"
530+ with open (filename , "rb" ) as f :
531+ buf = io .BytesIO (f .read ())
532+ reader = open_database (buf , MODE_FD )
533+ self ._check_ip_v4 (reader , filename )
534+ reader .close ()
535+
527536 if os .name != "nt" :
528537
529538 def test_multiprocessing (self ):
You can’t perform that action at this time.
0 commit comments