@@ -560,3 +560,66 @@ def test_old_parameters_work(self):
560560 def test_is_subclass_of_block_store_reader (self ):
561561 """ParallelStoreReader should be a subclass of BlockStoreReader."""
562562 assert issubclass (ParallelStoreReader , BlockStoreReader )
563+
564+
565+ # =============================================================================
566+ # HTTP Store / xarray integration tests
567+ # =============================================================================
568+
569+
570+ @pytest .mark .parametrize ("ReaderClass" , ALL_READERS )
571+ def test_reader_closed_property (ReaderClass ):
572+ """Test that readers have a closed property for file-like compatibility."""
573+ memstore = MemoryStore ()
574+ memstore .put ("test.txt" , b"hello world" )
575+
576+ reader = ReaderClass (memstore , "test.txt" )
577+ assert reader .closed is False
578+
579+ reader .close ()
580+ assert reader .closed is True
581+
582+
583+ @pytest .mark .parametrize ("ReaderClass" , ALL_READERS )
584+ def test_reader_closed_property_with_context_manager (ReaderClass ):
585+ """Test that closed property is True after exiting context manager."""
586+ memstore = MemoryStore ()
587+ memstore .put ("test.txt" , b"hello world" )
588+
589+ with ReaderClass (memstore , "test.txt" ) as reader :
590+ assert reader .closed is False
591+
592+ assert reader .closed is True
593+
594+
595+ @pytest .mark .parametrize ("ReaderClass" , ALL_READERS )
596+ def test_reader_readable (ReaderClass ):
597+ """Test that readers report as readable."""
598+ memstore = MemoryStore ()
599+ memstore .put ("test.txt" , b"hello world" )
600+
601+ reader = ReaderClass (memstore , "test.txt" )
602+ assert reader .readable () is True
603+ reader .close ()
604+
605+
606+ @pytest .mark .parametrize ("ReaderClass" , ALL_READERS )
607+ def test_reader_seekable (ReaderClass ):
608+ """Test that readers report as seekable."""
609+ memstore = MemoryStore ()
610+ memstore .put ("test.txt" , b"hello world" )
611+
612+ reader = ReaderClass (memstore , "test.txt" )
613+ assert reader .seekable () is True
614+ reader .close ()
615+
616+
617+ @pytest .mark .parametrize ("ReaderClass" , ALL_READERS )
618+ def test_reader_writable (ReaderClass ):
619+ """Test that readers report as not writable."""
620+ memstore = MemoryStore ()
621+ memstore .put ("test.txt" , b"hello world" )
622+
623+ reader = ReaderClass (memstore , "test.txt" )
624+ assert reader .writable () is False
625+ reader .close ()
0 commit comments