2016-07-11 6 views
0

Hat jemand einen Hack, um ein os.DirEntry Objekt zu erstellen, außer das Verzeichnis aufzulisten?Erstelle os.DirEntry

Ich möchte, dass für zwei Zwecke verwenden:

  1. Tests
  2. API, wo Behälter und enthalten sind, die gleichzeitig abgefragt

Antwort

1

In Python 3.5 os.DirEntry ist noch nicht ausgesetzt . Einzelheiten

: https://bugs.python.org/issue27038

Python 3.6 macht os.DirEntry Typ, aber es ist nicht instanziiert werden kann.

auf Python 3.5 eine Art() auf einem DirEntry Objekt zurückgibt posix.DirEntry

1

Ja, os.DirEntry ist ein Low-Level-Klasse nicht beabsichtigt instanziiert werden. Für Tests und andere Dinge können Sie eine Mock PseudoDirEntry Klasse erstellen, die die gewünschten Dinge zum Beispiel nachahmt (aus another answer I wrote here):

class PseudoDirEntry: 
    def __init__(self, name, path, is_dir, stat): 
     self.name = name 
     self.path = path 
     self._is_dir = is_dir 
     self._stat = stat 

    def is_dir(self): 
     return self._is_dir 

    def stat(self): 
     return self._stat