403Webshell
Server IP : 35.80.110.71  /  Your IP : 216.73.216.221
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64
User : ubuntu ( 1000)
PHP Version : 8.3.31
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/fs/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/fs/__pycache__/test.cpython-312.pyc
�

��ed!��0�dZddlmZmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZddlm
Z
ddlZddlZddlmZmZmZmZmZddlmZddlmZmZej6rddlZnddlmZ	dd	lm Z dZ#Gd�d
e$�Z%y#e!$r	d
d	l"m Z Y�wxYw)zFBase class for tests.

All Filesystems should be able to pass these.

�)�absolute_import�unicode_literalsN)�datetime)�	text_type)�ResourceType�Seek�errors�glob�walk)�open_fs)�ClosingSubFS�SubFS)�timezone�uZ4

UTF-8 encoded sample plain-text file
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

Markus Kuhn [ˈmaʳkʊs kuːn] <mkuhn@acm.org> — 1999-08-20


The ASCII compatible UTF-8 encoding of ISO 10646 and Unicode
plain-text files is defined in RFC 2279 and in ISO 10646-1 Annex R.


Using Unicode/UTF-8, you can write in emails and source code things such as

Mathematics and Sciences:

  ∮ E⋅da = Q,  n → ∞, ∑ f(i) = ∏ g(i), ∀x∈ℝ: ⌈x⌉ = −⌊−x⌋, α ∧ ¬β = ¬(¬α ∨ β),

  ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⊥ < a ≠ b ≡ c ≤ d ≪ ⊤ ⇒ (A ⇔ B),

  2H₂ + O₂ ⇌ 2H₂O, R = 4.7 kΩ, ⌀ 200 mm

Linguistics and dictionaries:

  ði ıntəˈnæʃənəl fəˈnɛtık əsoʊsiˈeıʃn
  Y [ˈʏpsilɔn], Yen [jɛn], Yoga [ˈjoːgɑ]

APL:

  ((V⍳V)=⍳⍴V)/V←,V    ⌷←⍳→⍴∆∇⊃‾⍎⍕⌈

Nicer typography in plain text files:

  ╔══════════════════════════════════════════╗
  ║                                          ║
  ║   • ‘single’ and “double” quotes         ║
  ║                                          ║
  ║   • Curly apostrophes: “We’ve been here” ║
  ║                                          ║
  ║   • Latin-1 apostrophe and accents: '´`  ║
  ║                                          ║
  ║   • ‚deutsche‘ „Anführungszeichen“       ║
  ║                                          ║
  ║   • †, ‡, ‰, •, 3–4, —, −5/+5, ™, …      ║
  ║                                          ║
  ║   • ASCII safety test: 1lI|, 0OD, 8B     ║
  ║                      ╭─────────╮         ║
  ║   • the euro symbol: │ 14.95 € │         ║
  ║                      ╰─────────╯         ║
  ╚══════════════════════════════════════════╝

Greek (in Polytonic):

  The Greek anthem:

  Σὲ γνωρίζω ἀπὸ τὴν κόψη
  τοῦ σπαθιοῦ τὴν τρομερή,
  σὲ γνωρίζω ἀπὸ τὴν ὄψη
  ποὺ μὲ βία μετράει τὴ γῆ.

  ᾿Απ᾿ τὰ κόκκαλα βγαλμένη
  τῶν ῾Ελλήνων τὰ ἱερά
  καὶ σὰν πρῶτα ἀνδρειωμένη
  χαῖρε, ὦ χαῖρε, ᾿Ελευθεριά!

  From a speech of Demosthenes in the 4th century BC:

  Οὐχὶ ταὐτὰ παρίσταταί μοι γιγνώσκειν, ὦ ἄνδρες ᾿Αθηναῖοι,
  ὅταν τ᾿ εἰς τὰ πράγματα ἀποβλέψω καὶ ὅταν πρὸς τοὺς
  λόγους οὓς ἀκούω· τοὺς μὲν γὰρ λόγους περὶ τοῦ
  τιμωρήσασθαι Φίλιππον ὁρῶ γιγνομένους, τὰ δὲ πράγματ᾿
  εἰς τοῦτο προήκοντα,  ὥσθ᾿ ὅπως μὴ πεισόμεθ᾿ αὐτοὶ
  πρότερον κακῶς σκέψασθαι δέον. οὐδέν οὖν ἄλλο μοι δοκοῦσιν
  οἱ τὰ τοιαῦτα λέγοντες ἢ τὴν ὑπόθεσιν, περὶ ἧς βουλεύεσθαι,
  οὐχὶ τὴν οὖσαν παριστάντες ὑμῖν ἁμαρτάνειν. ἐγὼ δέ, ὅτι μέν
  ποτ᾿ ἐξῆν τῇ πόλει καὶ τὰ αὑτῆς ἔχειν ἀσφαλῶς καὶ Φίλιππον
  τιμωρήσασθαι, καὶ μάλ᾿ ἀκριβῶς οἶδα· ἐπ᾿ ἐμοῦ γάρ, οὐ πάλαι
  γέγονεν ταῦτ᾿ ἀμφότερα· νῦν μέντοι πέπεισμαι τοῦθ᾿ ἱκανὸν
  προλαβεῖν ἡμῖν εἶναι τὴν πρώτην, ὅπως τοὺς συμμάχους
  σώσομεν. ἐὰν γὰρ τοῦτο βεβαίως ὑπάρξῃ, τότε καὶ περὶ τοῦ
  τίνα τιμωρήσεταί τις καὶ ὃν τρόπον ἐξέσται σκοπεῖν· πρὶν δὲ
  τὴν ἀρχὴν ὀρθῶς ὑποθέσθαι, μάταιον ἡγοῦμαι περὶ τῆς
  τελευτῆς ὁντινοῦν ποιεῖσθαι λόγον.

  Δημοσθένους, Γ´ ᾿Ολυνθιακὸς

Georgian:

  From a Unicode conference invitation:

  გთხოვთ ახლავე გაიაროთ რეგისტრაცია Unicode-ის მეათე საერთაშორისო
  კონფერენციაზე დასასწრებად, რომელიც გაიმართება 10-12 მარტს,
  ქ. მაინცში, გერმანიაში. კონფერენცია შეჰკრებს ერთად მსოფლიოს
  ექსპერტებს ისეთ დარგებში როგორიცაა ინტერნეტი და Unicode-ი,
  ინტერნაციონალიზაცია და ლოკალიზაცია, Unicode-ის გამოყენება
  ოპერაციულ სისტემებსა, და გამოყენებით პროგრამებში, შრიფტებში,
  ტექსტების დამუშავებასა და მრავალენოვან კომპიუტერულ სისტემებში.

Russian:

  From a Unicode conference invitation:

  Зарегистрируйтесь сейчас на Десятую Международную Конференцию по
  Unicode, которая состоится 10-12 марта 1997 года в Майнце в Германии.
  Конференция соберет широкий круг экспертов по  вопросам глобального
  Интернета и Unicode, локализации и интернационализации, воплощению и
  применению Unicode в различных операционных системах и программных
  приложениях, шрифтах, верстке и многоязычных компьютерных системах.

Thai (UCS Level 2):

  Excerpt from a poetry on The Romance of The Three Kingdoms (a Chinese
  classic 'San Gua'):

  [----------------------------|------------------------]
    ๏ แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช  พระปกเกศกองบู๊กู้ขึ้นใหม่
  สิบสองกษัตริย์ก่อนหน้าแลถัดไป       สององค์ไซร้โง่เขลาเบาปัญญา
    ทรงนับถือขันทีเป็นที่พึ่ง           บ้านเมืองจึงวิปริตเป็นนักหนา
  โฮจิ๋นเรียกทัพทั่วหัวเมืองมา         หมายจะฆ่ามดชั่วตัวสำคัญ
    เหมือนขับไสไล่เสือจากเคหา      รับหมาป่าเข้ามาเลยอาสัญ
  ฝ่ายอ้องอุ้นยุแยกให้แตกกัน          ใช้สาวนั้นเป็นชนวนชื่นชวนใจ
    พลันลิฉุยกุยกีกลับก่อเหตุ          ช่างอาเพศจริงหนาฟ้าร้องไห้
  ต้องรบราฆ่าฟันจนบรรลัย           ฤๅหาใครค้ำชูกู้บรรลังก์ ฯ

  (The above is a two-column text. If combining characters are handled
  correctly, the lines of the second column should be aligned with the
  | character above.)

Ethiopian:

  Proverbs in the Amharic language:

  ሰማይ አይታረስ ንጉሥ አይከሰስ።
  ብላ ካለኝ እንደአባቴ በቆመጠኝ።
  ጌጥ ያለቤቱ ቁምጥና ነው።
  ደሀ በሕልሙ ቅቤ ባይጠጣ ንጣት በገደለው።
  የአፍ ወለምታ በቅቤ አይታሽም።
  አይጥ በበላ ዳዋ ተመታ።
  ሲተረጉሙ ይደረግሙ።
  ቀስ በቀስ፥ ዕንቁላል በእግሩ ይሄዳል።
  ድር ቢያብር አንበሳ ያስር።
  ሰው እንደቤቱ እንጅ እንደ ጉረቤቱ አይተዳደርም።
  እግዜር የከፈተውን ጉሮሮ ሳይዘጋው አይድርም።
  የጎረቤት ሌባ፥ ቢያዩት ይስቅ ባያዩት ያጠልቅ።
  ሥራ ከመፍታት ልጄን ላፋታት።
  ዓባይ ማደሪያ የለው፥ ግንድ ይዞ ይዞራል።
  የእስላም አገሩ መካ የአሞራ አገሩ ዋርካ።
  ተንጋሎ ቢተፉ ተመልሶ ባፉ።
  ወዳጅህ ማር ቢሆን ጨርስህ አትላሰው።
  እግርህን በፍራሽህ ልክ ዘርጋ።

Runes:

  ᚻᛖ ᚳᚹᚫᚦ ᚦᚫᛏ ᚻᛖ ᛒᚢᛞᛖ ᚩᚾ ᚦᚫᛗ ᛚᚪᚾᛞᛖ ᚾᚩᚱᚦᚹᛖᚪᚱᛞᚢᛗ ᚹᛁᚦ ᚦᚪ ᚹᛖᛥᚫ

  (Old English, which transcribed into Latin reads 'He cwaeth that he
  bude thaem lande northweardum with tha Westsae.' and means 'He said
  that he lived in the northern land near the Western Sea.')

Braille:

  ⡌⠁⠧⠑ ⠼⠁⠒  ⡍⠜⠇⠑⠹⠰⠎ ⡣⠕⠌

  ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠙⠑⠁⠙⠒ ⠞⠕ ⠃⠑⠛⠔ ⠺⠊⠹⠲ ⡹⠻⠑ ⠊⠎ ⠝⠕ ⠙⠳⠃⠞
  ⠱⠁⠞⠑⠧⠻ ⠁⠃⠳⠞ ⠹⠁⠞⠲ ⡹⠑ ⠗⠑⠛⠊⠌⠻ ⠕⠋ ⠙⠊⠎ ⠃⠥⠗⠊⠁⠇ ⠺⠁⠎
  ⠎⠊⠛⠝⠫ ⠃⠹ ⠹⠑ ⠊⠇⠻⠛⠹⠍⠁⠝⠂ ⠹⠑ ⠊⠇⠻⠅⠂ ⠹⠑ ⠥⠝⠙⠻⠞⠁⠅⠻⠂
  ⠁⠝⠙ ⠹⠑ ⠡⠊⠑⠋ ⠍⠳⠗⠝⠻⠲ ⡎⠊⠗⠕⠕⠛⠑ ⠎⠊⠛⠝⠫ ⠊⠞⠲ ⡁⠝⠙
  ⡎⠊⠗⠕⠕⠛⠑⠰⠎ ⠝⠁⠍⠑ ⠺⠁⠎ ⠛⠕⠕⠙ ⠥⠏⠕⠝ ⠰⡡⠁⠝⠛⠑⠂ ⠋⠕⠗ ⠁⠝⠹⠹⠔⠛ ⠙⠑
  ⠡⠕⠎⠑ ⠞⠕ ⠏⠥⠞ ⠙⠊⠎ ⠙⠁⠝⠙ ⠞⠕⠲

  ⡕⠇⠙ ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲

  ⡍⠔⠙⠖ ⡊ ⠙⠕⠝⠰⠞ ⠍⠑⠁⠝ ⠞⠕ ⠎⠁⠹ ⠹⠁⠞ ⡊ ⠅⠝⠪⠂ ⠕⠋ ⠍⠹
  ⠪⠝ ⠅⠝⠪⠇⠫⠛⠑⠂ ⠱⠁⠞ ⠹⠻⠑ ⠊⠎ ⠏⠜⠞⠊⠊⠥⠇⠜⠇⠹ ⠙⠑⠁⠙ ⠁⠃⠳⠞
  ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲ ⡊ ⠍⠊⠣⠞ ⠙⠁⠧⠑ ⠃⠑⠲ ⠔⠊⠇⠔⠫⠂ ⠍⠹⠎⠑⠇⠋⠂ ⠞⠕
  ⠗⠑⠛⠜⠙ ⠁ ⠊⠕⠋⠋⠔⠤⠝⠁⠊⠇ ⠁⠎ ⠹⠑ ⠙⠑⠁⠙⠑⠌ ⠏⠊⠑⠊⠑ ⠕⠋ ⠊⠗⠕⠝⠍⠕⠝⠛⠻⠹
  ⠔ ⠹⠑ ⠞⠗⠁⠙⠑⠲ ⡃⠥⠞ ⠹⠑ ⠺⠊⠎⠙⠕⠍ ⠕⠋ ⠳⠗ ⠁⠝⠊⠑⠌⠕⠗⠎
  ⠊⠎ ⠔ ⠹⠑ ⠎⠊⠍⠊⠇⠑⠆ ⠁⠝⠙ ⠍⠹ ⠥⠝⠙⠁⠇⠇⠪⠫ ⠙⠁⠝⠙⠎
  ⠩⠁⠇⠇ ⠝⠕⠞ ⠙⠊⠌⠥⠗⠃ ⠊⠞⠂ ⠕⠗ ⠹⠑ ⡊⠳⠝⠞⠗⠹⠰⠎ ⠙⠕⠝⠑ ⠋⠕⠗⠲ ⡹⠳
  ⠺⠊⠇⠇ ⠹⠻⠑⠋⠕⠗⠑ ⠏⠻⠍⠊⠞ ⠍⠑ ⠞⠕ ⠗⠑⠏⠑⠁⠞⠂ ⠑⠍⠏⠙⠁⠞⠊⠊⠁⠇⠇⠹⠂ ⠹⠁⠞
  ⡍⠜⠇⠑⠹ ⠺⠁⠎ ⠁⠎ ⠙⠑⠁⠙ ⠁⠎ ⠁ ⠙⠕⠕⠗⠤⠝⠁⠊⠇⠲

  (The first couple of paragraphs of "A Christmas Carol" by Dickens)

Compact font selection example text:

  ABCDEFGHIJKLMNOPQRSTUVWXYZ /0123456789
  abcdefghijklmnopqrstuvwxyz £©µÀÆÖÞßéöÿ
  –—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
  ∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ fi�⑀₂ἠḂӥẄɐː⍎אԱა

Greetings in various languages:

  Hello world, Καλημέρα κόσμε, コンニチハ

Box drawing alignment tests:                                          █
                                                                      ▉
  ╔══╦══╗  ┌──┬──┐  ╭──┬──╮  ╭──┬──╮  ┏━━┳━━┓  ┎┒┏┑   ╷  ╻ ┏┯┓ ┌┰┐    ▊ ╱╲╱╲╳╳╳
  ║┌─╨─┐║  │╔═╧═╗│  │╒═╪═╕│  │╓─╁─╖│  ┃┌─╂─┐┃  ┗╃╄┙  ╶┼╴╺╋╸┠┼┨ ┝╋┥    ▋ ╲╱╲╱╳╳╳
  ║│╲ ╱│║  │║   ║│  ││ │ ││  │║ ┃ ║│  ┃│ ╿ │┃  ┍╅╆┓   ╵  ╹ ┗┷┛ └┸┘    ▌ ╱╲╱╲╳╳╳
  ╠╡ ╳ ╞╣  ├╢   ╟┤  ├┼─┼─┼┤  ├╫─╂─╫┤  ┣┿╾┼╼┿┫  ┕┛┖┚     ┌┄┄┐ ╎ ┏┅┅┓ ┋ ▍ ╲╱╲╱╳╳╳
  ║│╱ ╲│║  │║   ║│  ││ │ ││  │║ ┃ ║│  ┃│ ╽ │┃  ░░▒▒▓▓██ ┊  ┆ ╎ ╏  ┇ ┋ ▎
  ║└─╥─┘║  │╚═╤═╝│  │╘═╪═╛│  │╙─╀─╜│  ┃└─╂─┘┃  ░░▒▒▓▓██ ┊  ┆ ╎ ╏  ┇ ┋ ▏
  ╚══╩══╝  └──┴──┘  ╰──┴──╯  ╰──┴──╯  ┗━━┻━━┛           └╌╌┘ ╎ ┗╍╍┛ ┋  ▁▂▃▄▅▆▇█

c�~�eZdZdZddzZddzZddzZddzdzZd�Zd	�Z	d
�Z
d�Zd�Zd
�Z
d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd �Z d!�Z!d"�Z"d#�Z#d$�Z$d%�Z%d&�Z&d'�Z'd(�Z(d)�Z)d*�Z*d+�Z+d,�Z,d-�Z-d.�Z.d/�Z/d0�Z0d1�Z1d2�Z2d3�Z3d4�Z4d5�Z5d6�Z6d7�Z7d8�Z8d9�Z9d:�Z:d;�Z;d<�Z<d=�Z=d>�Z>d?�Z?d@�Z@dA�ZAdB�ZBdC�ZCdD�ZDdE�ZEdF�ZFdG�ZGdH�ZHdI�ZIdJ�ZJdK�ZKdL�ZLdM�ZMdN�ZNdO�ZOdP�ZPdQ�ZQdR�ZRdS�ZSdT�ZTdU�ZUdV�ZVdW�ZWdX�ZXdY�ZYdZ�ZZd[�Z[d\�Z\d]�Z]d^�Z^d_�Z_d`�Z`da�Zadb�Zbdc�Zcdd�Zdde�Zedf�Zfdg�Zgyh)i�FSTestCaseszBasic FS tests.sfoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoo�sbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbars	bazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazseggeggeggeggeggeggegg�c��td��)zReturn an FS instance.zimplement me)�NotImplementedError��selfs �)/usr/lib/python3/dist-packages/fs/test.py�make_fszFSTestCases.make_fs�s
��!�.�1�1�c�&�|j�y)z�Destroy a FS instance.

        Arguments:
            fs (FS): A filesystem instance previously opened
                by `~fs.test.FSTestCases.make_fs`.

        N)�close)r�fss  r�
destroy_fszFSTestCases.destroy_fss��	����
rc�.�|j�|_y�N)rrrs r�setUpzFSTestCases.setUps���,�,�.��rc�>�|j|j�|`yr!)rrrs r�tearDownzFSTestCases.tearDowns�������� ��Grc�X�|j|jj|��y)zeAssert a path exists.

        Arguments:
            path (str): A path on the filesystem.

        N)�
assertTruer�exists�r�paths  r�
assert_existszFSTestCases.assert_exists���	
��������t�,�-rc�X�|j|jj|��y)zmAssert a path does not exist.

        Arguments:
            path (str): A path on the filesystem.

        N)�assertFalserr'r(s  r�assert_not_existszFSTestCases.assert_not_existss��	
���������-�.rc�X�|j|jj|��y)ztAssert a path is an empty directory.

        Arguments:
            path (str): A path on the filesystem.

        N)r&r�isemptyr(s  r�assert_isemptyzFSTestCases.assert_isempty%s��	
���������-�.rc�X�|j|jj|��y)zhAssert a path is a file.

        Arguments:
            path (str): A path on the filesystem.

        N)r&r�isfiler(s  r�
assert_isfilezFSTestCases.assert_isfile.r+rc�X�|j|jj|��y)zmAssert a path is a directory.

        Arguments:
            path (str): A path on the filesystem.

        N)r&r�isdirr(s  r�assert_isdirzFSTestCases.assert_isdir7s��	
������
�
�d�+�,rc��t|t�sJ�|jj|�}|j	||�|j|t�y)z�Assert a file contains the given bytes.

        Arguments:
            path (str): A path on the filesystem.
            contents (bytes): Bytes to compare.

        N)�
isinstance�bytesr�	readbytes�assertEqual�assertIsInstance)rr)�contents�datas    r�assert_byteszFSTestCases.assert_bytes@sH���(�E�*�*�*��w�w� � ��&������x�(����d�E�*rc��t|t�sJ�|jj|d�5}|j	�}ddd�|j|�|j
|t�y#1swY�2xYw)z�Assert a file contains the given text.

        Arguments:
            path (str): A path on the filesystem.
            contents (str): Text to compare.

        �rtN)r9rr�open�readr<r=)rr)r>�fr?s     r�assert_textzFSTestCases.assert_textMsh���(�I�.�.�.�
�W�W�\�\�$��
%�	���6�6�8�D�	�����x�(����d�I�.�	�	�s�A1�1A:c�@�|jtj�5|jj	d�ddd�|jtj�5|jjd�ddd�y#1swY�MxYw#1swYyxYw)N�/)�assertRaisesr	�FileExpectedrrC�openbinrs r�
test_root_dirzFSTestCases.test_root_dir[sy��
�
�
�v�2�2�
3�	��G�G�L�L���	�
�
�
�v�2�2�
3�	!��G�G�O�O�C� �	!�	!�	�	��	!�	!�s�B�#B�B�Bc�H�|jt�5|jjdd�ddd�|jjdd�|j	dd�|jjdd�|j	dd�y#1swY�fxYw)N�foo�bar�barsbazsbarbaz)rI�	TypeErrorr�appendbytesr@rs r�test_appendbyteszFSTestCases.test_appendbytesas���
�
�
�y�
)�	.��G�G����u�-�	.������E�6�*����%��(������E�6�*����%��+�	.�	.���B�B!c�H�|jt�5|jjdd�ddd�|jjdd�|j	dd�|jjdd�|j	dd�y#1swY�fxYw)NrNrPrO�baz�barbaz)rIrQr�
appendtextrFrs r�test_appendtextzFSTestCases.test_appendtextis���
�
�
�y�
)�	.��G�G���u�f�-�	.������5�%�(������&������5�%�(������)�	.�	.�rTc��t|j�|jtj|j�tj�yr!)�reprrr=�sixrrs r�
test_basiczFSTestCases.test_basicqs.���T�W�W�
����c�m�m�D�G�G�4�c�m�m�Drc�R�|jj�}|j||jjd���|jt	|t
��|jjd�}|j
|t
�|j|�y)N�standard)�	namespace�__nosuchnamespace__)r�getmetar<r&r9�dictr=r-)r�meta�no_metas   r�test_getmetazFSTestCases.test_getmetavsy���w�w��� ��	
����t�w�w�����D�E�	
���
�4��.�/��'�'�/�/�"7�8�����g�t�,�����!rc�l�|j|jjd��|jjd�|j	|jjd��|jjd�|j|jjd��y)N�foo.txtrO)r-rr3�creater&�makedirrs r�test_isfilezFSTestCases.test_isfile�sq����������	�2�3������y�!���������y�1�2�����������������.�/rc�l�|j|jjd��|jjd�|jj	d�|j|jjd��|j|jjd��y�NrNrO)r-rr6rirjr&rs r�
test_isdirzFSTestCases.test_isdir�sq����������u�-�.������u���������������
�
�e�,�-���������u�-�.rc�,�|jjd�|j|jjd��|j	t
j�5|jjd�ddd�y#1swYyxYwrm)r�touchr-�islinkrIr	�ResourceNotFoundrs r�test_islinkzFSTestCases.test_islink�sf�����
�
�e�����������.�/�
�
�
�v�6�6�
7�	"��G�G�N�N�5�!�	"�	"�	"�s�%B
�
Bc�j�|jjdd�|jjdd�|jjddjd��|j|jj	d�d�|j|jj	d�d	�|j|jj	d�d
�|jtj�5|jj	d�ddd�y#1swYyxYw)N�emptyr�one�a�onethousand��bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb�asciirri��doesnotexist)r�
writebytes�encoder<�getsizerIr	rrrs r�test_getsizezFSTestCases.test_getsize�s��������7�C�(������5�$�'������=�:�*=�*=�g�*F�G����������1�1�5����������/��3����������7��>�
�
�
�v�6�6�
7�	,��G�G�O�O�N�+�	,�	,�	,�s�D)�)D2c��|jjd�	|jjd�}|j|t�|j|jjd�t�|j|jjd��|jjd�y#tj$r-|j|jjd��Y�[wxYw�NrNz
a/b/c/foo/bar)rri�
getsyspathr=r�	getospathr:r&�
hassyspathr	�	NoSysPathr-)r�syspaths  r�test_getsyspathzFSTestCases.test_getsyspath�s��������u��	7��g�g�(�(��/�G�
�!�!�'�9�5��!�!�$�'�'�"3�"3�E�":�E�B��O�O�D�G�G�.�.�u�5�6������?�+�����	8����T�W�W�/�/��6�7�	8�s�C�=D�Dc��|jjd�	|jjd�|j|jj	d��|jj	d�y#t
j$r-|j|jj	d��Y�[wxYwr�)rri�geturlr&�hasurlr	�NoURLr-rs r�test_geturlzFSTestCases.test_geturl�s��������u��	3��G�G�N�N�5�!�
�O�O�D�G�G�N�N�5�1�2�������'���|�|�	4����T�W�W�^�^�E�2�3�	4�s�A>�>=B>�=B>c���|jjd�|jtj�5|jjdd��ddd�y#1swYyxYw)z.Check an unknown purpose raises a NoURL error.rN�__nosuchpurpose__)�purposeN)rrirIr	r�r�rs r�test_geturl_purposezFSTestCases.test_geturl_purpose�sN�������u��
�
�
�v�|�|�
,�	?��G�G�N�N�5�*=�N�>�	?�	?�	?�s�A"�"A+c�^�|jjd�}|j|d�y)z,Check validatepath returns an absolute path.rN�/fooN)r�validatepathr<r(s  r�test_validatepathzFSTestCases.test_validatepath�s&���w�w�#�#�E�*������v�&rc�B�|jtj�5|jj	dd�ddd�|jtj�5|jjd�ddd�y#1swY�MxYw#1swYyxYw)Nzinvalidfile�wb)rIr	�InvalidCharsInPathrrCr�rs r�test_invalid_charszFSTestCases.test_invalid_chars�s��
�
�
�v�8�8�
9�	0��G�G�L�L��$�/�	0��
�
�v�8�8�
9�	2��G�G� � ��1�	2�	2�	0�	0��	2�	2�s�B	�$B�	B�Bc���|jjd�}|j|jd�|j	|j
�|j
d|j�|jjdd�|jjd�|jjd�j}|j
d|�|j|ddt�|j|ddd�|j|dd�|jjd�j}|j
d|�|j|ddd�|j	|dd�|jjdd	g�
�j}|j
d|�|j|t�|j|d	dd�|j|d	d
tt j"��|j||jj%d�j�	t'j(|�|jjdd�j}|j|t�|j|dddd��|jjdgd��
�}d	|jvr�|jd	}|j|j1d�t3d�tt4f�|j|j1d�t3d�tt4f�|j|j1d�t3d�tt4f�|j|j1d�t3d�tt4f�yy#t*t,f$rt/d��wxYw)NrH��basicrNrP�dir�name�is_dir�details��
namespaces�size��typez info should be JSON serializableraF�r�r�)�access�statr��accessed�modified�created�metadata_changed)r�getinfor<r�r&r��assertInr�r|rj�rawr=rr-rc�intr�file�
getdetails�json�dumpsrQ�
ValueError�AssertionError�getr��float)r�	root_info�info�no_infor�s     r�test_getinfozFSTestCases.test_getinfo�s*���G�G�O�O�C�(�	��������,����	�(�(�)��
�
�g�y�3�3�4�	
�����5�&�)���������w�w���u�%�)�)���
�
�g�t�$����d�7�m�F�3�Y�?�����g��v�.��6�����g��x�0�1��w�w���u�%�)�)���
�
�g�t�$�����g��v�.��6�����W�
�h�/�0��w�w���u�)���=�A�A���
�
�g�t�$����d�D�)�����i���0�!�4�����i���0�#�l�6G�6G�2H�I�	
����t�w�w�1�1�%�8�<�<�=�	E��J�J�t��
�'�'�/�/�%�)>�?�C�C�����g�t�,������)�E�U�+K�L�
�w�w���u�1N��O������'��h�h�y�)�G��!�!�'�+�+�j�"9�D��J��U�;S�T��!�!�'�+�+�j�"9�D��J��U�;S�T��!�!�'�+�+�i�"8�4��:�s�E�:R�S��!�!����.�/�$�t�*�c�5�1I�
�(���:�&�	E� �!C�D�D�	E�s�O�O1c��|j|jjd��|j|jjd��|j|jjd��|j|jjd��|j|jjd��|j|jjd��|jj	d�|jjdd�|j|jjd��|j|jjd��|j|jjd��|j|jjd��|j
d�|j
d�|j
d�|jd�|jjd�|jd�|j|jjd��|jd�|j|jjd��|j|jjd��y)NrHr�rN�foo/bar�foo/bar/baz�egg�test)	r&rr'r-�makedirsr|r*r.�removers r�test_existszFSTestCases.test_existss���	
��������s�+�,���������r�*�+�	
���������.�/���������	�2�3���������
�6�7����������.�/�	
������#������=�'�2�	
��������u�-�.���������y�1�2���������}�5�6����������.�/����5�!����9�%����=�)����u�%�	
�����}�%����}�-���������
�6�7����}�-�	
��������s�+�,���������r�*�+rc��|jtj�5|jj	d�ddd�|j|jj	d�g�|j|jj	d�g�|j|jj	d�g�|jj
dd�|jj
dd�|jjd�|jj
d	d�tj||jj	d�gd
��tj||jj	d�gd
��tj||jj	d�gd
��|jj	d�D]}|j|t��|jjd�|j|jj	d�g�|jj
d
d�|jj
dd�tj||jj	d�ddg�|jj	d�D]}|j|t��|jjd�|jtj�5|jj	d�ddd�y#1swY��xYw#1swYyxYw)N�foobarrH�.z./rN�eggrOrVzbaz/egg)rNrOrVr�z/dirz
dir/foofooz
dir/barbar�foofoo�barbar�notadir)rIr	rrr�listdirr<r|rjr\�assertCountEqualr=rri�DirectoryExpected)rr�s  r�test_listdirzFSTestCases.test_listdir1ss��
�
�
�v�6�6�
7�	&��G�G�O�O�H�%�	&�	
���������-�r�2����������-�r�2����������.��3�	
�����5�&�)������5�&�)��������	
�����9�f�-�	���T�4�7�7�?�?�3�#7�9N�O����T�4�7�7�?�?�3�#7�9N�O����T�4�7�7�?�?�4�#8�:O�P��G�G�O�O�C�(�	3�D��!�!�$�	�2�	3�	
�������	
���������0�"�5�	
�����<��0������<��0�	���T�4�7�7�?�?�5�#9�H�h�;O�P��G�G�O�O�E�*�	3�D��!�!�$�	�2�	3�	
�����y�!�
�
�
�v�7�7�
8�	'��G�G�O�O�I�&�	'�	'�U	&�	&��T	'�	'�s�M� M�M�Mc��|jjdd�|jd�|jjdd�|j	d�|jd�|j
dd�|jjdd�|jtj�5|jjdd�ddd�|jjddd��|j	d�|jtj�5|jjdd�ddd�|jtj�5|jjd	d
�ddd�|jjd�|jjdd
�|jjd�|jjdd�|j	d�|j
dd
�|jd�|j	d�|jtj�5|jjdd�ddd�y#1swY���xYw#1swY��SxYw#1swY��xYw#1swYyxYw)NrNr�rO�foo2�eggeggT��	overwritezegg/barr��spamrVz
baz/bazbazsbazbaz�baz2zbaz2/bazbaz�yolk)rr|r4�mover.r*r@rIr	�DestinationExistsrrrjr7rJrs r�	test_movezFSTestCases.test_move`s�������5�&�)����5�!�	
�����U�E�"�	
���u�%�	
���5�!����%��(�	
�����6�9�-�
�
�
�v�7�7�
8�	(��G�G�L�L���'�	(�	
�����V�U�d��3����v�&��
�
�v�6�6�
7�	+��G�G�L�L��	�*�	+��
�
�v�6�6�
7�	(��G�G�L�L���'�	(�	
������������<��3�������������\�=�1����|�,����-��3�	
���&�!����v�&�
�
�
�v�2�2�
3�	)��G�G�L�L���(�	)�	)�5	(�	(��	+�	+��	(�	(��	)�	)�s0�9J
�,J�0J'�'J4�
J�J$�'J1�4J=c��|jtj�5|jj	d�ddd�|jj	dd��}|j|t�|j|jjd�g�|jd�|jj	d�|jd�|j|jjd�tj�|jjdd�|jdd�|jtj�5|jj	d�ddd�|jtj �5|jj	d�ddd�|jj	d�|jj	d�|jtj�5|jj	d	�ddd�|jtj�5|jj	d�ddd�y#1swY��OxYw#1swY��xYw#1swY��xYw#1swY�sxYw#1swYyxYw)
NrHT��recreaterN�foo/bar.txtr��/foo/bar/baz�/foo/barr�)rIr	�DirectoryExistsrrjr=rr<r�r.r7�gettyper�	directoryr|r@rr)r�slash_fss  r�test_makedirzFSTestCases.test_makedir�s��
�
�
�v�5�5�
6�	!��G�G�O�O�C� �	!��7�7�?�?�3��?�6�����h��.����������-�r�2����u�%�����������%� ����������/��1G�1G�H������=�&�1����-��0��
�
�v�5�5�
6�	#��G�G�O�O�E�"�	#��
�
�v�6�6�
7�	,��G�G�O�O�N�+�	,�	
�����
�#�������'�
�
�
�v�5�5�
6�	+��G�G�O�O�M�*�	+��
�
�v�5�5�
6�	+��G�G�O�O�M�*�	+�	+�;	!�	!�� 	#�	#��	,�	,��	+�	+��	+�	+�s;�J	�%J�(J#�!J/�$J;�	J�J �#J,�/J8�;Kc�*�|j|jjd��|jjd�|j	|jjd�tj�|jjd�|j|jjd��|j|jjd��|jtj�5|jjd�ddd�|jjdd��|jjdd�|jtj�5|jjd�ddd�|jtj�5|jjd	�ddd�y#1swY��xYw#1swY�YxYw#1swYyxYw)
NrNr�r�Tr��foo.binr�zfoo.bin/barzfoo.bin/bar/baz/egg)r-rr'r�r<r�rr�r&r6rIr	r�r|r�rs r�
test_makedirszFSTestCases.test_makedirs�s|�����������.�/�����������������/��1G�1G�H�������'�������
�
�i�0�1�������
�
�m�4�5�
�
�
�v�5�5�
6�	,��G�G���]�+�	,�	
��������6������9�g�.�
�
�
�v�7�7�
8�	,��G�G���]�+�	,��
�
�v�7�7�
8�	4��G�G���2�3�	4�	4�	,�	,��	,�	,��	4�	4�s$�
G1�	G=�H	�1G:�=H�	Hc�T�|jjd�|j|jjd�dg�|j|jjd�dg�|j|jjd�dg�|j|jjd�g�t	|jjd��}|jt
|�d�|j|djd�y)Nzfoo/foo/foor�rNzfoo/foorr)rr�r<r��list�scandir�lenr�)r�scans  r�test_repeat_dirzFSTestCases.test_repeat_dir�s���	
������'����������,�u�g�6����������/�%��9����������3�e�W�=����������7��<��D�G�G�O�O�E�*�+������T��A�&�����a����u�-rc�,�|jtj�5|jj	dd�ddd�|jjd�d}|jj	dd�5}t
|�|j|tj�|j|j��|j|j��|j|j�|j|�ddd�|jj�|jj	dd�5}|j|tj�|j|j��|j|j��|j|j�|j!�}ddd�|j|j�|j#|�|j%d|�d}|jj	dd�5}|j|�ddd�|j%d|�|jtj�5|jj	d	�ddd�|jj	d�5}	|j'�}|j#t)j |d
�d�ddd�t(j,j/gd��}|jj1d
|�|jj	d
�5}t3||j5d��D]\}}|j#||��	ddd�y#1swY��ixYw#1swY���xYw#1swY���xYw#1swY��yxYw#1swY��1xYw#tj*$rY��wxYw#1swY��xYw#1swYyxYw)Nr{�rrN�Hello, World�	foo/hello�wtrB�Goodbye, World�/foo/bar/test.txt��Goodbye)zLine 1zLine 2zLine 3ziter.txtr)rIr	rrrrCrjr[r=�io�IOBaser&�writabler-�readable�closed�writerDr<rF�fileno�os�UnsupportedOperation�linesep�join�	writetext�zip�
splitlines�r�textrE�hello�fn�lines�actual�expecteds        r�	test_openzFSTestCases.test_open�s$��
�
�
�v�6�6�
7�	.��G�G�L�L���-�	.�	
���������
�W�W�\�\�+�t�
,�	����G��!�!�!�R�Y�Y�/��O�O�A�J�J�L�)����Q�Z�Z�\�*����Q�X�X�&�
�G�G�D�M�
	�	
������!��W�W�\�\�+�t�
,�	���!�!�!�R�Y�Y�/��O�O�A�J�J�L�)����Q�Z�Z�\�*����Q�X�X�&��F�F�H�E�	�	
������!������%�����d�+� ��
�W�W�\�\�+�t�
,�	��
�G�G�D�M�	�����d�+��
�
�v�6�6�
7�	.��G�G�L�L�,�-�	.��W�W�\�\�+�
&�	=�!�
=��X�X�Z��� � �����Q���<�
	=��
�
��� >�?�������*�e�,�
�W�W�\�\�*�
%�	3��$'��5�+;�+;�A�+>�$?�
3� ���� � ���2�
3�	3�	3�e	.�	.��	�	��	�	��	�	��
	.�	.���*�*�
��
��	=�	=��	3�	3�sy�N$�>BN1�B
N>�O�
O�O>�O%�&O>�$6P
�$N.�1N;�>O�O�O"�%O;�8O>�:O;�;O>�>P�
Pc�X
�|jtj�5|jj	dd�ddd�|jjd�d}|jj	dd�5}t
|�|jd|j�|j|tj�|j|j��|j|j��|j!t#|�|j%|��|j|j&�ddd�|jj&�|jtj(�5|jj	dd�5}	ddd�ddd�|jj	dd�5}|jd|j�|j|tj�|j|j��|j|j��|j+�}|j|j&�ddd�|j|j&�|j!|�|j-d|�d	}|jj	dd�5}|j!t#|�|j%|��ddd�|j-d|�|jtj.�5|jj	d�ddd�|jtj�5|jj	d
�ddd�|jj	d�5}	|j1�}|j!t3j*|d�d�ddd�d
j7gd��}|jj9d|�|jj	d�5}t;||j=d��D]\}}|j!||��	ddd�y#1swY��VxYw#1swY��WxYw#1swY��xYw#1swY��xYw#1swY��KxYw#1swY���xYw#1swY���xYw#1swY��JxYw#tj4$rY��wxYw#1swY��xYw#1swYyxYw)Nr{r�rNs
Hello, World
r��w�b�xsGoodbye, Worldr�r�r��
)sLine 1sLine 2sLine 3ziter.binr)rIr	rrrrKrjr[r��moder=r�r�r&r�r-r�r<r�r�r��
FileExistsrDr@rJr�r�r�rr|rrrs        r�test_openbin_rwzFSTestCases.test_openbin_rw	s���
�
�
�v�6�6�
7�	1��G�G�O�O�N�C�0�	1�	
�������!��
�W�W�_�_�[�#�
.�	'�!���G��M�M�#�q�v�v�&��!�!�!�R�Y�Y�/��O�O�A�J�J�L�)����Q�Z�Z�\�*����S��Y�����
�6����Q�X�X�&�	'�	
������!�
�
�
�v�0�0�
1�	�������c�2�
�a��
�	�
�W�W�_�_�[�#�
.�	'�!��M�M�#�q�v�v�&��!�!�!�R�Y�Y�/��O�O�A�J�J�L�)����Q�Z�Z�\�*��F�F�H�E����Q�X�X�&�
	'�	
������!������%����+�t�,�!��
�W�W�_�_�[�#�
.�	7�!����S��Y�����
�6�	7����+�t�,��
�
�v�2�2�
3�	#��G�G�O�O�E�"�	#��
�
�v�6�6�
7�	1��G�G�O�O�/�0�	1��W�W�_�_�[�
)�	=�Q�
=��X�X�Z��� � �����Q���<�
	=��
�
�<�=�������:�u�-�
�W�W�_�_�Z�
(�	3�A�$'��5�+;�+;�A�+>�$?�
3� ���� � ���2�
3�	3�	3�y	1�	1��	'�	'��
�
��	�	��
	'�	'��	7�	7��
	#�	#��	1�	1���*�*�
��
��	=�	=��	3�	3�s��R�>CR�R8�(R+�*R8�B&S�!+S�S�S,�T�	S9�&T�6T �R�R(�+R5	�0R8�8S�S�S�S)�,S6�9T�T�T�T�T� T)c�x�|jjdd�5}t|�t|�|j	|t
j�|j|j��|j|j��|j|j�|j|j�d�|jd�|j|j�d�|jgd��|j!t"�5|j%d�ddd�ddd�|jj�|jjdd	�5}|j!t"�5|j%d�ddd�ddd�|jjdd
�5}t|�t|�|j	|t
j�|j|j��|j|j��|j|j�|j|j'�gd��|j!t"�5|jd�ddd�ddd�|j|j�|jjdd
�5}|j	|t
j�|j|j��|j|j��|j|j�|j|j'd�ddg�|j|j�d�t)d�}|j|j+|�d�|j|j�d�|j|d�|j!t"�5|jd�ddd�ddd�|j|j�|jjdd
�5}|jt-|�gd��|j|j�ddd�|j|j�|jjd�5}t/|�}|jt1|�d�ddd�|jjdd�5}|jd|jd��ddd�|jjdd
�5}|j	|t
j�|j|j��|j|j��|j|j3��|j|j�|j|j%d�d�|jd|j5dt6j8��|j|j%d�d�|jd|j5dt6j:��|j|j%d�d�|jd|j5dt6j<��|j|j%d�d �|j!t>�5|j5d!d"�ddd�ddd�|j|j�|jjdd#�5}|j	|t
j�|j|j��|j|j��|j|j3��|j|j�|jd$|j5d$��|jd$|jA��|jd|j5d��|j|j%�d%�|jd!|jAd!��|jd$|j��|jd|j5d��tCt|j��tCt|��|j|j%�d&�|jd|j5d��|jd'�|jd|j5d��|j|j%d�d'�ddd�|j|j�y#1swY���xYw#1swY���xYw#1swY��|xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��"xYw#1swY��'xYw#1swY���xYw#1swY��dxYw#1swY��+xYw#1swY��?xYw#1swY��DxYw#1swY��xYw)(NrrrzHello
World
�)�foo
�bar
�baz
r�binr�r�)�Hello
zWorld
rrr�no�rb�sHello
sWorld
��sfoo
snor�unicodeuHéllo
Wörld
�Hr��l���W�����z�
�M�r+b�sHellos
Hello�O)"rrCr[rr=r�r�r&r�r-r�r�r<�tellr��
writelinesrI�IOErrorrD�	readlines�	bytearray�readintor��iter�next�seekable�seekr�set�current�endr��truncate�print)rrE�buffer�
iter_liness    r�test_open_fileszFSTestCases.test_open_filesKs����W�W�\�\�&�#�
&�	�!���G��a�L��!�!�!�R�Y�Y�/��O�O�A�J�J�L�)����Q�Z�Z�\�*����Q�X�X�&����Q�V�V�X�q�)�
�G�G�$�%����Q�V�V�X�r�*�
�L�L�4�5��"�"�7�+�
����q�	�
�	�	
������!�
�W�W�\�\�%��
&�	�!��"�"�7�+�
����q�	�
�	��W�W�\�\�&�#�
&�	�!���G��a�L��!�!�!�R�Y�Y�/����Q�Z�Z�\�*��O�O�A�J�J�L�)����Q�X�X�&�������
�P�
��"�"�7�+�
�����
�
�	�	
������!�
�W�W�\�\�&�$�
'�	�1��!�!�!�R�Y�Y�/����Q�Z�Z�\�*��O�O�A�J�J�L�)����Q�X�X�&����Q�[�[��^�j�*�-E�F����Q�V�V�X�r�*��q�\�F����Q�Z�Z��/��3����Q�V�V�X�r�*����V�X�.��"�"�7�+�
������
�	�	
������!�
�W�W�\�\�&�#�
&�	'�!����T�!�W�&W�X����Q�X�X�&�	'�	
������!�
�W�W�\�\�&�
!�	:�Q��a��J����T�*�-�y�9�	:��W�W�\�\�)�S�
)�	>�Q����R����);�!<�=�	>��W�W�\�\�&�$�
'�	�1��!�!�!�R�Y�Y�/����Q�Z�Z�\�*��O�O�A�J�J�L�)��O�O�A�J�J�L�)����Q�X�X�&����Q�V�V�A�Y��-����Q����q�$�(�(� 3�4����Q�V�V�A�Y��-����Q����q�$�,�,� 7�8����Q�V�V�A�Y��-����R�����D�H�H�!5�6����Q�V�V�A�Y��-��"�"�:�.�
����r�2��
�	�	
������!�
�W�W�\�\�&�%�
(�	.�A��!�!�!�R�Y�Y�/��O�O�A�J�J�L�)��O�O�A�J�J�L�)��O�O�A�J�J�L�)����Q�X�X�&����Q����q�	�*����Q��
�
��-����Q����q�	�*����Q�V�V�X�x�0����R����B��0����Q�����)����Q����q�	�*��$�t�w�w�-� ��$�q�'�N����Q�V�V�X�'9�:����Q����q�	�*�
�G�G�D�M����Q����q�	�*����Q�V�V�A�Y��-�'	.�(	
������!�m
�
��	�	�� 
�
��	�	��
�
��	�	��2
�
��	�	��	'�	'��
	:�	:��	>�	>�� 
�
��	�	��"	.�	.�s��D	h�&h�8h�?h.�h!�'h.�Ci�h;�,i�3D0i"�#i�5i"�<9i/�3'i<�>"j	�Gj#�j�j#� Ij0�h	�h�h�!h+	�&h.�.h8�;i	�i�i�i	�i"�"i,�/i9�<j�	j�j 	�j#�#j-�0j9c�	�|jjdd�5}t|�t|�|j	d|j
�|j
|tj�|j|j��|j|j��|j|j�|jd|jd��ddd�|jj�|jjdd�5}t|�t|�|j	d|j
�|j
|tj�|j|j��|j|j��|j|j�|j!�}ddd�|jd�|jj�|j#t$�5|jjdd�5}	ddd�ddd�|j#t&j(�5|jjd�ddd�|j#t&j(�5|jjd	�ddd�|jj+d
�|j#t&j,�5|jjd�ddd�|j#t&j,�5|jjdd�ddd�|j#t&j(�5|jjd
�ddd�|j#t&j(�5|jjd
d�ddd�|j#t$�5|jjdd�ddd�y#1swY��`xYw#1swY��rxYw#1swY��xYw#1swY��xYw#1swY���xYw#1swY���xYw#1swY��^xYw#1swY��'xYw#1swY��xYw#1swY��xYw#1swYyxYw)Nzfile.binr�rr�srrBr�r�rNr�rz/egg/bar�h)rrKr[rr�rr=r�r�r&r�r-r�r�r<r�rDrIr�r	rrrjrJ)r�
write_file�	read_filer?s    r�test_openbinzFSTestCases.test_openbin�s���
�W�W�_�_�Z��
.�	=�*�����j�!��M�M�#�z���/��!�!�*�b�i�i�8��O�O�J�/�/�1�2����Z�0�0�2�3����Z�.�.�/����Q�
� 0� 0�� ;�<�	=�	
���
�)�)�*��W�W�_�_�Z��
.�	$�)�����j�!��M�M�#�y�~�~�.��!�!�)�R�Y�Y�7��O�O�I�.�.�0�1����Y�/�/�1�2����Y�-�-�.��>�>�#�D�	$�	
����y�)����	�(�(�)��
�
�z�
*�	�������T�2�
�i��
�	�
�
�
�v�6�6�
7�	'��G�G�O�O�I�&�	'��
�
�v�6�6�
7�	1��G�G�O�O�/�0�	1�	
�������
�
�
�v�2�2�
3�	$��G�G�O�O�F�#�	$��
�
�v�2�2�
3�	)��G�G�O�O�F�C�(�	)��
�
�v�6�6�
7�	(��G�G�O�O�J�'�	(��
�
�v�6�6�
7�	-��G�G�O�O�J��,�	-��
�
�z�
*�	,��G�G�O�O�I�s�+�	,�	,�o	=�	=��	$�	$��
�
��	�	��
	'�	'��	1�	1��
	$�	$��	)�	)��	(�	(��	-�	-��	,�	,�s��C
Q�)B<Q�/Q/�Q"�Q/�=Q<�R	�R�!R#�%R0�(R<�"S�Q�Q�"Q,	�'Q/�/Q9�<R�	R�R �#R-�0R9�<S�Sc�(�|jjdd�5}|jd�ddd�|jtj
�5|jjdd�ddd�y#1swY�NxYw#1swYyxYw)N�test_open_exclusiver�bananas)rrCr�rIr	r�rrEs  rrGzFSTestCases.test_open_exclusive�s{��
�W�W�\�\�/��
5�	��
�G�G�I��	��
�
�v�0�0�
1�	5��G�G�L�L�.��4�	5�	5�	�	��	5�	5���A<�B�<B�Bc�(�|jjdd�5}|jd�ddd�|jtj
�5|jjdd�ddd�y#1swY�NxYw#1swYyxYw)N�test_openbin_exclusiversbananas)rrKr�rIr	rrIs  rrLz"FSTestCases.test_openbin_exclusive�s{��
�W�W�_�_�5�s�
;�	 �q�
�G�G�J��	 ��
�
�v�0�0�
1�	;��G�G�O�O�4�c�:�	;�	;�	 �	 ��	;�	;�rJc��|jjd�|jjdd�|jjdd�|jjd�5}t	|�t|�t
j||jd�ddg�|j|jd��|j|jd��|j|jd�d�|j|jd�d�ddd�|j|jj��|jt j"�5|jjd�ddd�|jt j$�5|jjd�ddd�|jjd	�|jjd�|jjdt&�
�5}t
j||jd�ddg�|j|jd��|j|jd��|j|jd�d�|j|jd�d�ddd�|j|jj��y#1swY���xYw#1swY���xYw#1swY��XxYw#1swY�ZxYw)NrNr�sbarbar�foo/eggr�rHrOr�r�)�factory)rrjr|�opendirr[rr\r�r�r&r3r<r;r-�isclosedrIr	rrr�r
�r�foo_fss  r�test_opendirzFSTestCases.test_opendir�su��������������9�i�0������9�i�0��W�W�_�_�U�
#�	A�v���L��f��� � ��v�~�~�c�':�U�E�N�K��O�O�F�M�M�%�0�1��O�O�F�M�M�%�0�1����V�-�-�e�4�i�@����V�-�-�e�4�i�@�	A�	
������)�)�+�,��
�
�v�6�6�
7�	#��G�G�O�O�E�"�	#��
�
�v�7�7�
8�	'��G�G�O�O�I�&�	'�	
���������������W�W�_�_�U�L�_�
9�	A�V�� � ��v�~�~�c�':�U�E�N�K��O�O�F�M�M�%�0�1��O�O�F�M�M�%�0�1����V�-�-�e�4�i�@����V�-�-�e�4�i�@�	A�	
������(�(�*�+�?	A�	A��	#�	#��	'�	'��	A�	A�s2�/CL�L(�L5�>B+M�L%�(L2�5L?�Mc��|jjdd�|jjdd�|jjdd�|jd�|jd�|jd�|jjd�|jd�|j	d�|jd�|jtj�5|jjd�ddd�|jjd�|jtj�5|jjd�ddd�|jjd	�d
}t|d|j�}|tj|�5|jjd�ddd�y#1swY��xYw#1swY��xYw#1swYyxYw)
N�foo1stest1r�stest2�foo3stest3rOr�zfoo/bar/baz/z)resource 'foo/bar/egg/test.txt' not found�assertRaisesRegexzfoo/bar/egg/test.txt)
rr|r4r�r.rIr	rrrjrJr��getattrrX)r�	error_msgrXs   r�test_removezFSTestCases.test_remove#s��������6�8�,������6�8�,������6�8�,����6�"����6�"����6�"������v�����6�"����v�&����6�"�
�
�
�v�6�6�
7�	"��G�G�N�N�5�!�	"�	
�������
�
�
�v�2�2�
3�	"��G�G�N�N�5�!�	"�	
������(�?�	�#�D�*=�t�?U�?U�V��
�v�6�6�	�
B�	3��G�G�N�N�1�2�	3�	3�	"�	"��	"�	"��	3�	3�s$�5G'�G3�G?�'G0�3G<�?Hc�T�|jtj�5|jj	d�ddd�|jjd�|j
|jjd��|jj	d�|j|jjd��|j
|jjd��|jtj�5|jj	d�ddd�|jjd�|jjdd�|jtj�5|jj	d�ddd�|jtj�5|jj	d�ddd�y#1swY���xYw#1swY��xYw#1swY�fxYw#1swYyxYw)NrHr�r��nodirrNr�)rIr	�RemoveRootErrorr�	removedirr�r&r'r-r6rrr|r��DirectoryNotEmptyrs r�test_removedirzFSTestCases.test_removedirAs����
�
�v�5�5�
6�	#��G�G���c�"�	#�	
������'���������}�5�6������-�(���������
�6�7�������
�
�i�0�1�
�
�
�v�6�6�
7�	'��G�G���g�&�	'�	
������'������9�g�.�
�
�
�v�7�7�
8�	)��G�G���i�(�	)��
�
�v�7�7�
8�	)��G�G���i�(�	)�	)�'	#�	#��	'�	'��	)�	)��	)�	)�s/�G9�H�H�H�9H�H�H�H'c�P�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd	�|jjd
�|jd�|jd�|jj	d�|jd�|jd�|jjd�|j
tj�5|jj	d�ddd�|j
tj�5|jj	d
�ddd�y#1swY�MxYw#1swYyxYw)Nr�r�rN�
foo/a/b/c/d/e�foo/egg.txt�foo/bar/egg.binzfoo/bar/baz/egg.txt�foo/a/b/c/1.txt�foo/a/b/c/2.txt�foo/a/b/c/3.txtrNrOr�)
rr�rir*�
removetreer.rIr	r�rrrs r�test_removetreezFSTestCases.test_removetreeZs��������� �������'�������#�������)������}�%������(�)������,�-������(�)������(�)������(�)����=�)����,�-������5�!����u�%����6�"�	
�����u��
�
�
�v�7�7�
8�	&��G�G���u�%�	&��
�
�v�6�6�
7�	)��G�G���x�(�	)�	)�		&�	&��	)�	)�s�(H�+H�H�H%c�"�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jjd�|jd�|jd�|jj	d	�|jd	�|jd	�|jjd
�|jj
d�|jd
�|jd�y)Nr�rNrcrdrerfrgrhrHr�r�)rr�rir*rir1rjrs r�test_removetree_rootz FSTestCases.test_removetree_rootvs��������'�������#�������)������}�%������(�)������(�)������(�)������(�)����=�)����,�-�	
�����3�����3�����C� �	
�����u������������5�!����6�"rc�|�|jjd�tj�}d|dz|dzd�i}|jjd|�|jj	ddg��}|jdd�}|jdd�}|r'|j
|jdd�|dzd	�
�|r'|j
|jdd�|dzd	�
�|jtj�5|jjdi�ddd�y#1swYyxYw)N�birthday.txtr��<i)r�r�r�r�r�r)�places�nothing)rri�time�setinfor��is_writeable�assertAlmostEqualr�rIr	rr)r�now�change_info�new_info�can_write_acccess�can_write_modifieds      r�test_setinfozFSTestCases.test_setinfo�s�������~�&��i�i�k�� �s�R�x�S�7�]�"S�T���������4��7�7�?�?�>�y�k�?�J��$�1�1�)�Z�H��%�2�2�9�j�I����"�"����Y�
�3�S�2�X�a�
#�
���"�"����Y�
�3�S�7�]�1�
#�
��
�
�v�6�6�
7�	+��G�G�O�O�I�r�*�	+�	+�	+�s�D2�2D;c	���|jjd�|jjdtddd���|jj	ddg��}|jdd�}|jdd	�}|r7|j
|jtdddtj�
��|r8|j
|jtdddtj�
��yy)Nrn��r�r-)r�r�r�r�r���tzinfo)rri�settimesrr�rtr<r�r�utcr�)rr�ryrzs    r�
test_settimeszFSTestCases.test_settimes�s��������~�&�������(�4��A�2F��G��w�w���~�9�+��F�� �-�-�i��D��!�.�.�y�*�E������T�]�]�H�T�1�a����,U�V�����T�]�]�H�T�1�a����,U�V�rc	�b�|jjd�|jd�|jjdt	ddd��|jjddg��}|j
dd�r�|j|jt	dddtj���tj�}|jjd�|jjddg��jdd}|j||z
dk�yy)	Nznew.txtr}r�r-r�r�r�r~)rrpr4r�rr�rtr<r�rr�rrr�r&)rr�rvr�s    r�
test_touchzFSTestCases.test_touch�s������
�
�i� ����9�%�������H�T�1�a�$8�9��w�w���y�i�[��A�����Y�
�3����T�]�]�H�T�1�a����,U�V��)�)�+�C��G�G�M�M�)�$��w�w���y�i�[��I�M�M�����H�
�O�O�H�s�N�Q�.�/�4rc��|j|jj��|jj�|j	|jj��|jj�|j	|jj��|jtj�5|jjd�ddd�y#1swYyxYw)Nztest.bin)	r-rrQrr&rIr	�FilesystemClosedrKrs r�
test_closezFSTestCases.test_close�s���������)�)�+�,����
�
��������(�(�*�+����
�
��������(�(�*�+��
�
�v�6�6�
7�	(��G�G�O�O�J�'�	(�	(�	(�s�C4�4C=c���|jjdd�|jjdd�|jdd�|jjdd�|jjddd��|jdd�|j	t
j�5|jjdd�ddd�|j	t
j�5|jjdd�ddd�|j	t
j�5|jjd	d
�ddd�|jjd�|j	t
j�5|jjdd�ddd�y#1swY��xYw#1swY��xYw#1swY��xYw#1swYyxYw)
NrNr�rOrVs
truncatemeTr�z	a/b/c/bazr�r�r��folder)
rr|�copyr@rIr	r�rrrjrJrs r�	test_copyzFSTestCases.test_copy�s}�������5�'�*������U�E�"����%��)�	
�����5�-�0������U�E�T��2����%��)��
�
�v�7�7�
8�	'��G�G�L�L���&�	'��
�
�v�6�6�
7�	-��G�G�L�L���,�	-��
�
�v�6�6�
7�	(��G�G�L�L���'�	(�	
�������
�
�
�v�2�2�
3�	*��G�G�L�L���)�	*�	*�	'�	'��	-�	-��	(�	(��
	*�	*�s0�6G�:G�>G�G'�G�G�G$�'G0c��td�5}|jd|j�|jd|j�|j	d�jd|j
�|j
d�jd|j�|j}tjj|||��|j|jd�|j�|j|jd�|j�|j|jd	�|j
�|j|jd
�|j�ddd�y#1swYyxYw�z3Test fs.copy with varying number of worker threads.�temp://rNrO�dir1rVz	dir2/dir3r�)�workerszdir1/bazz
dir2/dir3/eggN)
rr|�data1�data2rj�data3r��data4rr��copy_fsr<r;�rr��src_fs�dst_fss    r�_test_uploadzFSTestCases._test_upload�s"��
�Y�
�
	L�6����e�T�Z�Z�0����e�T�Z�Z�0��N�N�6�"�-�-�e�T�Z�Z�@��O�O�K�(�3�3�E�4�:�:�F��W�W�F��G�G�O�O�F�F�G�O�<����V�-�-�e�4�d�j�j�A����V�-�-�e�4�d�j�j�A����V�-�-�j�9�4�:�:�F����V�-�-�o�>��
�
�K�
	L�
	L�
	L�s�E)E>�>Fc�&�|jd�y�Nr�r�rs r�
test_upload_0zFSTestCases.test_upload_0�������!�rc�&�|jd�y�Nrr�rs r�
test_upload_1zFSTestCases.test_upload_1�r�rc�&�|jd�y�Nr%r�rs r�
test_upload_2zFSTestCases.test_upload_2�r�rc�&�|jd�y�Nrr�rs r�
test_upload_4zFSTestCases.test_upload_4�r�rc��|j}td�5}|jd|j�|jd|j�|jd�jd|j�|jd�jd|j�tjj|||��|j|jd�|j�|j|jd�|j�|j|jd	�|j�|j|jd
�|j�ddd�y#1swYyxYwr�)
rrr|r�r�rjr�r�r�r�r�r<r;r�s    r�_test_downloadzFSTestCases._test_downloads"������
�Y�
�		L�6����e�T�Z�Z�0����e�T�Z�Z�0��N�N�6�"�-�-�e�T�Z�Z�@��O�O�K�(�3�3�E�4�:�:�F��G�G�O�O�F�F�G�O�<����V�-�-�e�4�d�j�j�A����V�-�-�e�4�d�j�j�A����V�-�-�j�9�4�:�:�F����V�-�-�o�>��
�
�K�		L�		L�		L�s�EE>�>Fc�&�|jd�yr��r�rs r�test_download_0zFSTestCases.test_download_0������A�rc�&�|jd�yr�r�rs r�test_download_1zFSTestCases.test_download_1r�rc�&�|jd�yr�r�rs r�test_download_2zFSTestCases.test_download_2r�rc�&�|jd�yr�r�rs r�test_download_4zFSTestCases.test_download_4r�rc���|j|jjd��|jjd�|j	|jjd��|j|jj
d�tj�|j|jjd�d�|jjdd�|j|jjd�d�|jjdd��|j|jjd�d�|jjdd�|j|jjd�d�|jjdd��|j|jjd�d�y)NrNrrPr�T)�wipeF)r-rr'rir&r<r�rr�r~r|rs r�test_createzFSTestCases.test_createsN�����������.�/������u����������u�-�.����������/��1B�1B�C����������/��3�	
�����5�&�)����������/��3������u�4��(����������/��3�	
�����5�&�)����������/��3������u�5��)����������/��3rc��|jjd�|jjd�}|j|t�|jjd�|jjd�|jjd�|jjd�|j
tj�5|jjd�ddd�y#1swYyxYw)NrNr�rHr�rO)	rri�descr=rrjrIr	rr)r�descriptions  r�	test_desczFSTestCases.test_desc0s��������u���g�g�l�l�5�)�����k�9�5�	
������������U��	
�����S�������R��
�
�
�v�6�6�
7�	 ��G�G�L�L���	 �	 �	 �s�C=�=Dc	�P�|jtj�5|jj	d�D]}�	ddd�|jj	d�}|jt
|tj��|jt|�g�|jjd�|jtj�5t|jj	d��ddd�|jjd�|jjd�|jj	d�}|jt
|tj��td�|D�d���}|D�cgc]	}d	|d	i��}}|j|d	dd
d�id	ddd�id	dd
d�ig�t|jj	dgd
����t|jj	dd���}|jt|�d�t|jj	dd���}|jt|�d�t|jj	dd���}|jt|�d�t!j"||�D�chc]}|j$��}	}|j|	hd��y#1swY���xYw#1swY��xYwcc}wcc}w)Nz/foobarrHrNrOr�c3�4K�|]}|j���y�wr!)r�)�.0r�s  r�	<genexpr>z+FSTestCases.test_scandir.<locals>.<genexpr>Ys����)�q�Q�U�U�)���c��|ddS)Nr�r��)r�s r�<lambda>z*FSTestCases.test_scandir.<locals>.<lambda>Ys��D��M�&�<Q�r)�keyr�Fr�T)r��linkr��lstatr�r�r���pager%�r%rr�rr$r>rOr�rN)rIr	rrrr�r&r9�collections_abc�Iterabler<r�rir�rj�sortedr��	itertools�chainr�)
r�_info�iter_scandirr��i�page1�page2�page3r��pageds
          r�test_scandirzFSTestCases.test_scandirAs���
�
�
�v�6�6�
7�	�������3�
���
�	�
�w�w���s�+�����
�<��1I�1I�J�K�����l�+�R�0�	
�����u���
�
�v�7�7�
8�	)��������'�(�	)�	
�����u����������w�w���s�+�����
�<��1I�1I�J�K��)�L�)�/Q�
��3:�:�Q�G�Q�w�Z�(�:��:������5�E�:�;��5�D�9�:��5�E�:�;�
�	
�	
��G�G�O�O�� N�
�
�	
��T�W�W�_�_�S�y�_�9�:������U��Q�'��T�W�W�_�_�S�v�_�6�7������U��Q�'��T�W�W�_�_�S�v�_�6�7������U��Q�'�!*�����!>�?�A����?��?����� 5�6�k	�	��	)�	)��;��2@s#�!L�#%L�#L�L#�L�Lc��|jt|jjddg���g�|jj	d�|jjd�|jjd�|jjd�t|jjdd�	��}t|jjdd
�	��}t|jjdd�	��}|jt
|�d�|jt
|�d�|jt
|�d
�tj|||�D�cgc]}|j��}}|jt|�hd��|jjddg��D�cgc]}|j��}}|jt|�ddh�|jjdddg��D�cgc]}|j��}}|jt|�hd��|jjddgddg��D�cgc]}|j��}}|jt|�ddh�|jjddg��D�cgc]}|j��}}|jt|�dh�|jt�5|jjdd��D�cgc]}|j��}}ddd�|jj	d�|jjddgdg��D�cgc]}|j��}}|jt|�dh�|jt�5|jjddgd��D�cgc]}|j��}}ddd�ycc}wcc}wcc}wcc}wcc}wcc}w#1swY��xYwcc}wcc}w#1swYyxYw)NrH�*.py)�filesrOrh�foo.py�foo.pycr�r�r�r�r%r>rOr�r�rhz*.pyc>rOr�r��*)�exclude_dirsr�)�
exclude_filesrVz??z)r��dirs)
r<r�r�	filterdirrjrir�r�r�r�r9rIrQ)rr�r�r�r��names�dir_lists       r�test_filterdirzFSTestCases.test_filterdirzs�������d�g�g�/�/��F�8�/�D�E�r�J�������������y�!������x� ������y�!��T�W�W�&�&�s��&�;�<���T�W�W�&�&�s��&�8�9���T�W�W�&�&�s��&�8�9������U��Q�'�����U��Q�'�����U��Q�'�'0���u�e�U�'K�L�t����L��L�����U��%L�M�+/�'�'�*;�*;�C��x�*;�*P�Q�$�D�I�I�Q��Q�����X����(9�:�#'�'�'�"3�"3�C���?P�"3�"Q�
��D�I�I�
��
�	
����X��(D�E�
���)�)��3�%���/@�*��
��
�I�I�
��
�	
����X���9�(=�>�+/�'�'�*;�*;�C�PS�u�*;�*U�V�$�D�I�I�V��V�����X����0��
�
�y�
)�	T�.2�g�g�.?�.?��6�.?�.R�S�d��	�	�S�H�S�	T�	
����������)�)�#�c�U�%��)�Q�
��
�I�I�
��
�	
����X����0�
�
�
�y�
)�	�!�G�G�-�-�c�#��V�-�T����	�	��H��	�	��KM��R��
��
��W��
T�	T�	T��
���	�	�s`�P�P�%P�:P!�P&� P0�2P+�P0�P<�"Q�4Q�Q�+P0�0P9�Q�Qc��djd�td�D��}|jjdd�5}|j	|�ddd�|j|jj
d�|�|jj
d�}|j|t�|j||�|jtj�5|jj
d�ddd�|jjd�|jtj�5|jj
d�ddd�y#1swY��xYw#1swY�uxYw#1swYyxYw)Nrc3�FK�|]}tj|����y�wr!�r\�int2byte�r��ns  rr�z-FSTestCases.test_readbytes.<locals>.<genexpr>������A��S�\�\�!�_�A���!rrNr�r�rV)r�rangerrCr�r<r;r=r:rIr	rrrjrJ)r�	all_bytesrE�
_all_bytess    r�test_readbyteszFSTestCases.test_readbytes�s/���H�H�A�e�C�j�A�A�	�
�W�W�\�\�%��
&�	�!�
�G�G�I��	�������*�*�5�1�9�=��W�W�&�&�u�-�
����j�%�0�����Y�/�
�
�
�v�6�6�
7�	)��G�G���i�(�	)�	
�������
�
�
�v�2�2�
3�	%��G�G���e�$�	%�	%�	�	��	)�	)��	%�	%�s#�E(�%E5�F�(E2�5E>�F
c��d}|jjd|�tj�}|jj	d|�|j|j
�|�|jtj�5|jj	d|�ddd�y#1swYyxYw)N�Hello, World�	hello.binr�)
rr|r��BytesIO�downloadr<�getvaluerIr	rr�r�
test_bytesrCs   r�
test_downloadzFSTestCases.test_download�s���$�
������;�
�3��Z�Z�\�
�������j�1�����,�,�.�
�;�
�
�
�v�6�6�
7�	4��G�G���Y�
�3�	4�	4�	4�s�B4�4B=c���d}|jjd|�tj�}|jj	d|d��|j|j
�|�y)Ns�Hello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, WorldHello, Worldr�r��
chunk_size)rr|r�r�r�r<r�r�s   r�test_download_chunk_sizez$FSTestCases.test_download_chunk_size�sX��*�
������;�
�3��Z�Z�\�
�������j�Q��?�����,�,�.�
�;rc�J�|j|jjd��|jjd�|j	|jjd��|j|jjd��|jjd�|j	|jjd��|jj
d�|j|jjd��y)NrHrNr�r�)r&rr0rjr-rir�rs r�test_isemptyzFSTestCases.test_isempty�s������������,�-�����������������-�.����������/�0������}�%����������0�1������}�%����������/�0rc��djd�td�D��}|jjd|�|jj	dd�5}|j�}ddd�|j
t�|j||�|jd|�|jt�5|jjdd�ddd�y#1swY�~xYw#1swYyxYw)Nrc3�FK�|]}tj|����y�wr!r�r�s  rr�z.FSTestCases.test_writebytes.<locals>.<genexpr>�r�r�rrNr�notbytesr!)rr�rr|rCrDr=r:r<r@rIrQ)rr�rE�_bytess    r�test_writebyteszFSTestCases.test_writebytes�s����H�H�A�e�C�j�A�A�	������5�)�,�
�W�W�\�\�%��
&�	�!��V�V�X�F�	����f�e�,������+����%��+�
�
�
�y�
)�	6��G�G���z�9�5�	6�	6�	�	��
	6�	6�s�C(�C4�(C1�4C=c��|jjd�|jjdd�5}|jt�ddd�|jjd�}|j
|t�|j|t�|jdt�y#1swY�gxYw)NrNzfoo/unicode.txtr�)
rrjrCr��UNICODE_TEXT�readtextr=rr<rF)rrErs   r�
test_readtextzFSTestCases.test_readtext�s����������
�W�W�\�\�+�T�
2�	"�a�
�G�G�L�!�	"��w�w��� 1�2�����d�I�.�����|�,����*�L�9�	"�	"�s�B4�4B=c��|jjdd�|jjdd�5}|j�}ddd�|j	d�|j|t�|jt�5|jjdd�ddd�y#1swY�lxYw#1swYyxYw)NrNrOrB�nottextsbytes)	rrrCrDr<r=rrIrQ)rrErNs   r�test_writetextzFSTestCases.test_writetext�s��������%��'�
�W�W�\�\�%��
&�	�!��&�&�(�C�	�����e�$����c�9�-�
�
�
�y�
)�	3��G�G���i��2�	3�	3�		�	��	3�	3�s�B5�C�5B>�C
c��tjd�}|jjd|�|jj	dd�5}|j�}ddd�|j
d�y#1swY�xYw)NrPrNr)r�r�r�	writefilerCrDr<�r�
bytes_filerEr?s    r�test_writefilezFSTestCases.test_writefile�sh���Z�Z��'�
������%��,�
�W�W�\�\�%��
&�	�!��6�6�8�D�	�����v�&�	�	�s�A:�:Bc��tjd�}|jjd|�|jj	dd�5}|j�}ddd�|j
d�|jtj�5|jjd|�ddd�y#1swY�`xYw#1swYyxYw)NrPrNrz
/spam/eggs)
r�r�r�uploadrCrDr<rIr	rrr
s    r�test_uploadzFSTestCases.test_uploads����Z�Z��'�
������u�j�)�
�W�W�\�\�%��
&�	�!��6�6�8�D�	�����v�&��
�
�v�6�6�
7�	5��G�G�N�N�<��4�	5�	5�	�	��
	5�	5�s�B>�C
�>C�
Cc��d}tj|�}|jjd|d��|jj	dd�5}|j�}ddd�|j
|�y#1swY�xYw)Ns�barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrNrr�r)r�r�rrrCrDr<)r�	test_datarrEr?s     r�test_upload_chunk_sizez"FSTestCases.test_upload_chunk_sizeso�� �	��Z�Z�	�*�
������u�j�Q��7�
�W�W�\�\�%��
&�	�!��6�6�8�D�	�����y�)�	�	�s�A>�>Bc�t�|jjdd�5}t|�t|�|j	d�|j	d�|j	d�ddd�|jdd�|jjdd�5}|j
dd	g�ddd�|jdd
�|jjd�5}|j|j�d�|j|j�d	�ddd�|jjd�5}|j�}ddd�|jdd	g�|jjd�5}t|�}ddd�|j|dd	g�|jjd�5}g}|D]}|j|��	ddd�|j|dd	g�|jjd�5}tt|��|jt|�d�ddd�|jjdd�5}|jd�ddd�|j|jj!d�d�|jdd
�y#1swY��oxYw#1swY��2xYw#1swY���xYw#1swY���xYw#1swY��lxYw#1swY��&xYw#1swY��xYw#1swY��xYw)NrVr�rw�b�csabcr�shello
sworldshello
worldr,r�shel)rrKrr[r�r@r0r<�readliner2r��appendr=r6rCr<r~�rrEr	�lines    r�test_bin_fileszFSTestCases.test_bin_filess���
�W�W�_�_�V�T�
*�	�a��a�L���G�
�G�G�D�M�
�G�G�D�M�
�G�G�D�M�	�	
���&�&�)��W�W�_�_�V�T�
*�	1�a�
�L�L�*�h�/�0�	1����&�/�2��W�W�_�_�V�
$�	5�����Q�Z�Z�\�:�6����Q�Z�Z�\�8�4�	5�
�W�W�_�_�V�
$�	"���K�K�M�E�	"������X� 6�7�
�W�W�_�_�V�
$�	����G�E�	������X� 6�7�
�W�W�_�_�V�
$�	#���E��
#�����T�"�
#�	#�	
�����X� 6�7�
�W�W�_�_�V�
$�	2���$�q�'�N����T�!�W�j�1�	2�
�W�W�\�\�&�%�
(�	�A�
�J�J�q�M�	����������0�!�4����&�&�)�M	�	��	1�	1��
	5�	5��
	"�	"��	�	��	#�	#��
	2�	2��
	�	�sa�A
K�K!�&AK.�
K;�L�L�(0L"�<L.�K�!K+�.K8�;L�L�L�"L+�.L7c���|jjdd�5}t|�t|�|j	d�|j	d�|j	d�ddd�|jdd�|jjdd�5}|j
dd	g�ddd�|jdd
�|jjd�5}|j|j�d�|j|j�d	�ddd�|jjd�5}|j�}ddd�|jdd	g�|jjd�5}t|�}ddd�|j|dd	g�|jjd�5}g}|D]}|j|��	ddd�|j|dd	g�|jjdd�5}|jd�ddd�|j|jjd�d�|jdd
�|jjdd�5}|j	d�ddd�|jdd�tj �5tj"d�|jjdd�}~ddd�|j%t&�5|jjdd�5}|j	d�ddd�ddd�|j%t&�5|jjdd�5}|j)d�ddd�ddd�y#1swY��[xYw#1swY��xYw#1swY���xYw#1swY���xYw#1swY��XxYw#1swY��xYw#1swY���xYw#1swY��oxYw#1swY��xYw#1swY��xYw#1swY��xYw#1swY��xYw#1swYyxYw)NrVr��ar�c�abcr�zhello
�worldzhello
worldzr+r��hel�ab�pshelp�ignorer�zno!�newfoorr%)rrCrr[r�rFr0r<rr2r�rr<r~r@�warnings�catch_warnings�simplefilterrIr1rDrs    r�
test_fileszFSTestCases.test_filesBs����W�W�\�\�&�$�
'�	�1��a�L���G�
�G�G�C�L�
�G�G�C�L�
�G�G�C�L�	�	
�����'��W�W�\�\�&�$�
'�	/�1�
�L�L�)�W�-�.�	/������0��W�W�\�\�&�
!�	4�Q����Q�Z�Z�\�9�5����Q�Z�Z�\�7�3�	4�
�W�W�\�\�&�
!�	"�Q��K�K�M�E�	"������G� 4�5�
�W�W�\�\�&�
!�	�Q���G�E�	������G� 4�5�
�W�W�\�\�&�
!�	#�Q��E��
#�����T�"�
#�	#�	
�����G� 4�5��W�W�\�\�&�$�
'�	�1�
�J�J�q�M�	����������0�!�4������'�
�W�W�\�\�&�$�
'�	�1�
�G�G�D�M�	����&�'�*��
$�
$�
&�	��!�!�(�+������V�S�)�A��	�
�
�
�w�
'�	������f�c�*�
�a������
�	��
�
�w�
'�	������h��,�
�����q�	�
�	�	�g	�	��	/�	/��
	4�	4��
	"�	"��	�	��	#�	#��	�	��
	�	��
	�	��
�
��	�	��

�
��	�	�s��A
O�O
�&AO�
O'�O4�P�)P�P�3P(�,Q�	P5�Q�Q�Q
�/Q�O
�
O�O$�'O1�4O>�P�P�P%�(P2�5P>	�:Q�Q
�
Q	�Q�Q"c��d}|jjd|�tjj|jd|jd�|j	d|�td�}tjj|jd|d�|j
|jd�|�y)Nr�rhzbar.txt�mem://)rr|r��	copy_filer@rr<r;)r�
bytes_test�mem_fss   r�test_copy_filezFSTestCases.test_copy_file|s���$�
������9�j�1�
�����$�'�'�9�d�g�g�y�A����)�Z�0���"��
�����$�'�'�9�f�i�@�����)�)�)�4�j�Arc�>�td�}|jjd�|jjd�tjj|j|�hd�}|j
ttj|��|�y)Nr-r�r���/eggr�r�r�)
rrr�rjr��copy_structurer<r9r�	walk_dirs)rr0rs   r�test_copy_structurezFSTestCases.test_copy_structure�si����"��������'��������
�����t�w�w��/�?������T�^�^�F�3�4�h�?rc�h�t|�}|jjd�|jjd�|jj	dd�|jj	dd�tj
j
|jd|d�hd�}|jttj|��|�|jdd�|jdd�td	�}tj
j
|jd
|d�|jttj|��dg�td�|jj�|j�tj
j
|jd
|d
�td�|jj�td�|j�|jttj|��ddg�y)Nr�r��top.txtr��/foo/bar/baz/test.txtr�rHr3r-r�z/bar/baz/test.txt�BEFOREr4�FS�OTHERz/egg/bar/baz/test.txt)rrr�rjrr��copy_dirr<r9rr6rFr��
walk_filesr=�tree�r�protocol�other_fsrs    r�_test_copy_dirzFSTestCases._test_copy_dir�s����8�$��������'�������������)�^�4������1�3C�D�
��������#�x��5�?������T�^�^�H�5�6��A�����N�3����0�2B�C��8�$��
��������&�(�C�8�����d�o�o�h�7�8�;N�:O�P�
�h���������
�
��
��������&�(�F�;�
�d��������
�g���
�
����������*�+�
 �"9�:�	
rc��t|�}|jd�|jd�|jdd�|jdd�tj
j
|d|jd�hd�}|jttj|j��|�|jdd�|jdd�y�	Nr�r�r9r�r:r�rHr3)rr�rjrrr�r>r<r9rr6rFrAs    r�_test_copy_dir_writez FSTestCases._test_copy_dir_write�s����8�$�����-�(���������9�n�5����2�4D�E�
������3�����5�?������T�^�^�D�G�G�4�5�x�@�����N�3����0�2B�Crc�H�|jd�|jd�y�Nr-�rDrGrs r�test_copy_dir_memzFSTestCases.test_copy_dir_mem�s�����H�%��!�!�(�+rc�H�|jd�|jd�y�Nr�rJrs r�test_copy_dir_tempzFSTestCases.test_copy_dir_temp�s�����I�&��!�!�)�,rc���|jjd�|jjd�|jjdd�|jjdd�tjj|jd|jd�hd	�}|j
ttj|j��|�|jdd�|jd
d�|j
t|jjd��gd��|j
td
�|jjd�D��gd��y)Nr�r�r9r�r:r�rNr�>�/foo2�	/foo2/bar�
/foo2/bar/bazr4z/foo2/bar/baz/test.txtrH)r�r�r9c3�4K�|]}|j���y�wr!)r�)r�rs  rr�z4FSTestCases.test_move_dir_same_fs.<locals>.<genexpr>�s����8�a�1�6�6�8�r�)rr�rjrr��move_dirr<r9rr6rFr�r�r�)rrs  r�test_move_dir_same_fsz!FSTestCases.test_move_dir_same_fs�s��������'�������������)�^�4������1�3C�D�
��������%����&�9�B������T�^�^�D�G�G�4�5�x�@�����N�3����1�3C�D����������� 4�5�7Q�R�����8�4�7�7�?�?�3�#7�8�8�:T�	
rc��t|�}|jd�|jd�|jdd�|jdd�tj
j
|d|jd�hd�}|j|jd�g�|jttj|j��|�|jdd�|jdd�yrF)
rr�rjrrr�rTr<r�r9rr6rFrAs    r�_test_move_dir_writez FSTestCases._test_move_dir_write�s����8�$�����-�(���������9�n�5����2�4D�E�
������3�����5�?������)�)�#�.��3�����T�^�^�D�G�G�4�5�x�@�����N�3����0�2B�Crc�&�|jd�yrI�rWrs r�test_move_dir_memzFSTestCases.test_move_dir_mem�s���!�!�(�+rc�&�|jd�yrMrYrs r�test_move_dir_tempzFSTestCases.test_move_dir_temp�s���!�!�)�,rc��d}|jjd�jd|�|jd|�tjj|jd|jd�|j
d�|jd|�|j|jjd�dg�|jt|jjd��jd�y)Nr�rN�test.txt�foo/test.txt�
foo/test2.txtz	test2.txt)rrjrrFr��	move_filer.r<r�r6r�r�)rrs  r�test_move_file_same_fsz"FSTestCases.test_move_file_same_fs�s������������(�(��T�:������.�
�����$�'�'�>�4�7�7�O�L����~�.�����$�/����������/�+��?�����d�g�g�o�o�e�4�5�:�:�K�Hrc��t|�}d}|jjd�jd|�|j	d|�|jtj�5tjj|jd|d�ddd�|jd�tjj|jd|d�|j|jd�|�y#1swY�hxYw)Nr�rNr^r_r`)rrrjrrFrIr	rrr�rar<r)rrBrCrs    r�_test_move_filezFSTestCases._test_move_files����8�$�����������(�(��T�:������.�
�
�
�v�6�6�
7�	R��G�G���d�g�g�~�x��Q�	R�	�����
�����$�'�'�>�8�_�M�����*�*�?�;�T�B�	R�	R�s�*-C>�>Dc�&�|jd�yrI�rdrs r�test_move_file_memzFSTestCases.test_move_file_mems�����X�&rc�&�|jd�yrMrfrs r�test_move_file_tempzFSTestCases.test_move_file_temps�����Y�'rc�T�|jjd�|jjdd�|jjd�|jj	dd�|jdd�|j
d�|jdd�|j
d�|jtj�5|jj	dd	�ddd�|jtj�5|jj	d
dd�
�ddd�|jtj�5|jj	ddd�
�ddd�y#1swY��xYw#1swY�\xYw#1swYyxYw)N�foo/bar/baz/egg�foo/bar/foofoo.txt�Hellor�r��foo2/foofoo.txt�foo2/baz/eggrNr�r�r�T�riz
foofoo.txt)rr�rrj�copydirrFr7rIr	rrr�rs r�test_copydirzFSTestCases.test_copydirsO�������*�+������.��8�������������	�6�*����*�G�4����.�)����-�w�7����+�,�
�
�
�v�6�6�
7�	-��G�G�O�O�E�8�,�	-�
�
�
�v�6�6�
7�	8��G�G�O�O�F�E�$�O�7�	8�
�
�
�v�7�7�
8�	J��G�G�O�O�-�|�D�O�I�	J�	J�		-�	-��	8�	8��	J�	J�s$�F�F�F�F�F�F'c�p�|jjd�|jjdd�|jjd�|jj	dd�|jdd�|j
d�|jd�|jd�|jd�|jtj�5|jj	dd	�ddd�|jtj�5|jj	d
dd�
�ddd�|jtj�5|jj	dd�ddd�y#1swY��xYw#1swY�ZxYw#1swYyxYw)Nrkrlrmr�r�rnrorNr�r�r�Trp)rr�rrj�movedirrFr7r.rIr	rrr�rs r�test_movedirzFSTestCases.test_movedir'sX�������*�+������.��8�������������	�6�*����*�G�4����.�)����y�)����3�4����0�1��
�
�v�6�6�
7�	-��G�G�O�O�E�8�,�	-��
�
�v�6�6�
7�	8��G�G�O�O�F�E�$�O�7�	8��
�
�v�7�7�
8�	?��G�G�O�O�-�~�>�	?�	?�	-�	-��	8�	8��	?�	?�s$�$F�(F �.F,�F� F)�,F5c��|j|jjdgd��|j|jjdgd�|jj	�jdd��y)Nr�r�zFOO.PY�case_insensitiveF)r&r�matchr<rbr�rs r�
test_matchzFSTestCases.test_match>s]��������
�
�v�h��9�:�����G�G�M�M�6�(�H�-��G�G�O�O��!�!�"4�e�<�	
rc��|jjd�|jjd�tj�}|jj|��|j
�}d}|j||�y)Nr�r^)r�z!|-- foo
|   `-- bar
`-- test.txt
)rr�rir��StringIOr@r�r<)r�
write_tree�writtenrs    r�	test_treezFSTestCases.test_treeEsd��������#������z�"��[�[�]�
������*��%��%�%�'��9������7�+rc���|jj�jdd�stjd��|jjd�|jj
dd�|jjdd�|jd�|jd	g|jjd��|jd	|jjd�j�|jdd�|jdd�|jjd�rG|j!t"j$j'|jj)d���|jj+d�|j-d�|jj/d�|j-d�y)
N�
unicode_pathsFz.the filesystem does not support unicode paths.uföldéru☭.txtzSmells like communism.uföldér/☣.txtsSmells like an old syringe.u☣.txt)rrbr��unittest�SkipTestrjrr|r7r<r�r�r�rFr@r�r&r�r)r'r�r�r.r_rs r�test_unicode_pathzFSTestCases.test_unicode_pathNsZ���w�w��� �$�$�_�e�<��#�#�$T�U�U������
�#������)�%=�>������-�/M�N����*�%����)��d�g�g�o�o�j�&A�B�����D�G�G�O�O�4F�$G�$L�$L�M�����$<�=����,�.L�M��7�7���0�1��O�O�B�G�G�N�N�4�7�7�+=�+=�>P�+Q�R�S������)�*����1�2������*�%����z�*rc�H�|jj�}d|vrtjd��|j	dd�rtjd��|jjd�|jjd�|jj
d�|jd�|jd�|jd�|jd�|jd�|jd�|jd�y)	Nrwzcase sensitivity not knownFz%the filesystem is not case sensitive.rN�Foo�fOO�FoO)rrbr�r�r�rjrpr*r.r7r4)rrds  r�test_case_sensitivezFSTestCases.test_case_sensitiveds����w�w��� ���T�)��#�#�$@�A�A��8�8�&��.��#�#�$K�L�L������������������
�
�e�����5�!����5�!����5�!����u�%����%� ����%� ����5�!rc�l�|j|jjtj�yr!)r=rr
�BoundGlobberrs r�	test_globzFSTestCases.test_globys �����d�g�g�l�l�D�,=�,=�>rc��|jjd�jdddz�|j|jj	dd�d�|jtj�5|jj	dd�ddd�|jjd�5}|j|j	dd�d�ddd�y#1swY�PxYw#1swYyxYw)	NrNz
hashme.txtsfoobarrzfoo/hashme.txt�md5� 9fff4bb103ab8ce4619064109c54cb9c�nohash)	rrjr|r<�hashrIr	�UnsupportedHashrPrRs  r�	test_hashzFSTestCases.test_hash|s����������)�)�,�	�D�8H�I�����G�G�L�L�)�5�1�3U�	
��
�
�v�5�5�
6�	5��G�G�L�L�)�8�4�	5��W�W�_�_�U�
#�	�v�������L�%�0�2T�
�	�	�	5�	5��	�	�s�:C&�:#C2�&C/�2C;N)h�__name__�
__module__�__qualname__�__doc__r�r�r�r�rrr"r$r*r.r1r4r7r@rFrLrSrYr]rfrkrnrsrr�r�r�r�r�r�r�r�r�r�r�r�rrr@rErGrLrTr[rarjrlr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr
rrrrr+r1r7rDrGrKrNrUrWrZr\rbrdrgrirrruryr~r�r�r�r�r�rrrr�s.����4��E��t�#�E��t�#�E����t�#�E�2��!��.�/�/�.�-�+�/�!�,�*�E�
"�0�/�"�,�,�	(�?�'�
2�<�|$,�L-'�^,)�\ +�D4�*
.�63�p@3�Dd"�L:,�x5�;�&,�P3�<)�2)�8#�8+�*	W�0�
(�*�8L�����L�����4�( �"77�r8�t%�"4�<�1�	6�:�3�'�	5�*�(*�T8�t
B�@�!
�FD�,�
-�

�$D� ,�-�
I�C� '�(�J�"?�.
�,�+�,"�*?�rr)&r��
__future__rrr�r�r�r�r\rrr�r(rr�fs.copyr�fs.moverrr	r
r�	fs.openerr�fs.subfsr
r�PY2�collectionsr��collections.abcr!r�ImportError�	_tzcompatr�objectrr�rr�<module>r�s����9�	���	�
��������5�5��(��7�7�)�-�$�!�
M��`Q�&�Q��i�$�#�$�s�3B�B�B

Youez - 2016 - github.com/yon3zu
LinuXploit