
    ed!                    0   d Z ddlmZmZ ddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlmZ ddlmZ ddlZddlZddlmZmZmZmZmZ ddlmZ ddlmZmZ ej6                  rddlZnddlmZ 	 dd	lm Z  dZ# G d de$      Z%y# e!$ r	 d
d	l"m Z  Y w xY w)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] &lt;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⌋, α ∧ ¬β = ¬(¬α ∨ β),

  ℕ ⊆ ℕ₀ ⊂ ℤ ⊂ ℚ ⊂ ℝ ⊂ ℂ, ⊥ &lt; 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 £©µÀÆÖÞßéöÿ
  –—‘“”„†•…‰™œŠŸž€ ΑΒΓΔΩαβγδω АБВГДабвгд
  ∀∂∈ℝ∧∪≡∞ ↑↗↨↻⇣ ┐┼╔╘░►☺♀ ﬁ�⑀₂ἠḂӥẄɐː⍎אԱა

Greetings in various languages:

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

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

c                   ~   e Zd ZdZddz  Zddz  Zddz  Zddz  dz  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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%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FSTestCaseszBasic FS tests.s   foofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoofoo   s   barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbars 	  bazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazbazs   eggeggeggeggeggeggegg   c                     t        d      )zReturn an FS instance.zimplement me)NotImplementedErrorselfs    )/usr/lib/python3/dist-packages/fs/test.pymake_fszFSTestCases.make_fs   s    !.11    c                 &     |j                           y)zDestroy a FS instance.

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

        N)close)r   fss     r   
destroy_fszFSTestCases.destroy_fs  s     	
r   c                 .    | j                         | _        y N)r   r   r   s    r   setUpzFSTestCases.setUp  s    ,,.r   c                 >    | j                  | j                         | `y r!   )r   r   r   s    r   tearDownzFSTestCases.tearDown  s     Gr   c                 X    | j                  | j                  j                  |             y)zeAssert a path exists.

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

        N)
assertTruer   existsr   paths     r   assert_existszFSTestCases.assert_exists       	t,-r   c                 X    | j                  | j                  j                  |             y)zmAssert a path does not exist.

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

        N)assertFalser   r'   r(   s     r   assert_not_existszFSTestCases.assert_not_exists  s     	-.r   c                 X    | j                  | j                  j                  |             y)ztAssert a path is an empty directory.

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

        N)r&   r   isemptyr(   s     r   assert_isemptyzFSTestCases.assert_isempty%  s     	-.r   c                 X    | j                  | j                  j                  |             y)zhAssert a path is a file.

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

        N)r&   r   isfiler(   s     r   assert_isfilezFSTestCases.assert_isfile.  r+   r   c                 X    | j                  | j                  j                  |             y)zmAssert a path is a directory.

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

        N)r&   r   isdirr(   s     r   assert_isdirzFSTestCases.assert_isdir7  s     	d+,r   c                     t        |t              sJ | j                  j                  |      }| j	                  ||       | j                  |t               y)zAssert 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)r   r)   contentsdatas       r   assert_byteszFSTestCases.assert_bytes@  sH     (E***ww  &x(dE*r   c                     t        |t              sJ | j                  j                  |d      5 }|j	                         }ddd       | j                  |       | j                  |t               y# 1 sw Y   2xY w)zAssert a file contains the given text.

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

        rtN)r9   r   r   openreadr<   r=   )r   r)   r>   fr?   s        r   assert_textzFSTestCases.assert_textM  sh     (I...WW\\$% 	668D	x(dI.	 	s   A11A:c                 @   | j                  t        j                        5  | j                  j	                  d       d d d        | j                  t        j                        5  | j                  j                  d       d d d        y # 1 sw Y   MxY w# 1 sw Y   y xY w)N/)assertRaisesr	   FileExpectedr   rC   openbinr   s    r   test_root_dirzFSTestCases.test_root_dir[  sy    v223 	GGLL	v223 	!GGOOC 	! 	!	 		! 	!s   B#BBBc                 H   | j                  t              5  | j                  j                  dd       d d d        | j                  j                  dd       | j	                  dd       | j                  j                  dd       | j	                  dd       y # 1 sw Y   fxY w)Nfoobar   bars   bazs   barbaz)rI   	TypeErrorr   appendbytesr@   r   s    r   test_appendbyteszFSTestCases.test_appendbytesa  s    y) 	.GGu-	.E6*%(E6*%+	. 	.   BB!c                 H   | j                  t              5  | j                  j                  dd       d d d        | j                  j                  dd       | j	                  dd       | j                  j                  dd       | j	                  dd       y # 1 sw Y   fxY w)NrN   rP   rO   bazbarbaz)rI   rQ   r   
appendtextrF   r   s    r   test_appendtextzFSTestCases.test_appendtexti  s    y) 	.GGuf-	.5%(&5%()	. 	.rT   c                     t        | j                         | j                  t        j                  | j                        t        j                         y r!   )reprr   r=   sixr   r   s    r   
test_basiczFSTestCases.test_basicq  s.    TWWcmmDGG4cmmDr   c                 R   | j                   j                         }| j                  || j                   j                  d             | j                  t	        |t
                     | j                   j                  d      }| j                  |t
               | j                  |       y )Nstandard)	namespace__nosuchnamespace__)r   getmetar<   r&   r9   dictr=   r-   )r   metano_metas      r   test_getmetazFSTestCases.test_getmetav  sy    ww  	twwDE 	
4./''//"78gt,!r   c                 l   | j                  | j                  j                  d             | j                  j                  d       | j	                  | j                  j                  d             | j                  j                  d       | j                  | j                  j                  d             y )Nfoo.txtrO   )r-   r   r3   creater&   makedirr   s    r   test_isfilezFSTestCases.test_isfile  sq    	23y!y12./r   c                 l   | j                  | j                  j                  d             | j                  j                  d       | j                  j	                  d       | j                  | j                  j                  d             | j                  | j                  j                  d             y NrN   rO   )r-   r   r6   ri   rj   r&   r   s    r   
test_isdirzFSTestCases.test_isdir  sq    u-.ue,-u-.r   c                 ,   | j                   j                  d       | j                  | j                   j                  d             | j	                  t
        j                        5  | j                   j                  d       d d d        y # 1 sw Y   y xY wrm   )r   touchr-   islinkrI   r	   ResourceNotFoundr   s    r   test_islinkzFSTestCases.test_islink  sf    e./v667 	"GGNN5!	" 	" 	"s   %B

Bc                 j   | j                   j                  dd       | j                   j                  dd       | j                   j                  ddj                  d             | j                  | j                   j	                  d      d       | j                  | j                   j	                  d      d	       | j                  | j                   j	                  d      d
       | j                  t        j                        5  | j                   j	                  d       d d d        y # 1 sw Y   y xY w)Nemptyr   one   aonethousand  bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbasciir   r   i  doesnotexist)r   
writebytesencoder<   getsizerI   r	   rr   r   s    r   test_getsizezFSTestCases.test_getsize  s    7C(5$'=:*=*=g*FG115/37>v667 	,GGOON+	, 	, 	,s   D))D2c                    | j                   j                  d       	 | j                   j                  d      }| j                  |t               | j                  | j                   j                  d      t               | j                  | j                   j                  d             | j                   j                  d       y # t        j                  $ r- | j                  | j                   j                  d             Y [w xY wNrN   za/b/c/foo/bar)r   ri   
getsyspathr=   r   	getospathr:   r&   
hassyspathr	   	NoSysPathr-   )r   syspaths     r   test_getsyspathzFSTestCases.test_getsyspath  s    u	7gg((/G !!'95!!$''"3"3E":EBOODGG..u56?+  	8TWW//67	8s   C =DDc                    | j                   j                  d       	 | j                   j                  d       | j                  | j                   j	                  d             | j                   j	                  d       y # t
        j                  $ r- | j                  | j                   j	                  d             Y [w xY wr   )r   ri   geturlr&   hasurlr	   NoURLr-   r   s    r   test_geturlzFSTestCases.test_geturl  s    u	3GGNN5! OODGGNN512' || 	4TWW^^E23	4s   A> >=B>=B>c                     | j                   j                  d       | j                  t        j                        5  | j                   j                  dd       ddd       y# 1 sw Y   yxY w)z.Check an unknown purpose raises a NoURL error.rN   __nosuchpurpose__)purposeN)r   ri   rI   r	   r   r   r   s    r   test_geturl_purposezFSTestCases.test_geturl_purpose  sN    uv||, 	?GGNN5*=N>	? 	? 	?s   A""A+c                 ^    | j                   j                  d      }| j                  |d       y)z,Check validatepath returns an absolute path.rN   /fooN)r   validatepathr<   r(   s     r   test_validatepathzFSTestCases.test_validatepath  s&    ww##E*v&r   c                 B   | j                  t        j                        5  | j                  j	                  dd       d d d        | j                  t        j                        5  | j                  j                  d       d d d        y # 1 sw Y   MxY w# 1 sw Y   y xY w)Nzinvalid filewb)rI   r	   InvalidCharsInPathr   rC   r   r   s    r   test_invalid_charszFSTestCases.test_invalid_chars  s    v889 	0GGLL$/	0 v889 	2GG  1	2 	2	0 	0	2 	2s   B	$B	BBc                    | j                   j                  d      }| j                  |j                  d       | j	                  |j
                         | j                  d|j                         | j                   j                  dd       | j                   j                  d       | j                   j                  d      j                  }| j                  d|       | j                  |d   d   t               | j                  |d   d   d       | j                  |d   d          | j                   j                  d      j                  }| j                  d|       | j                  |d   d   d       | j	                  |d   d          | j                   j                  dd	g
      j                  }| j                  d|       | j                  |t               | j                  |d	   d   d       | j                  |d	   d   t        t         j"                               | j                  || j                   j%                  d      j                         	 t'        j(                  |       | j                   j                  dd      j                  }| j                  |t               | j                  |d   ddd       | j                   j                  dg d
      }d	|j                  v r|j                  d	   }| j                  |j1                  d      t3        d       t        t4        f       | j                  |j1                  d      t3        d       t        t4        f       | j                  |j1                  d      t3        d       t        t4        f       | j                  |j1                  d      t3        d       t        t4        f       y y # t*        t,        f$ r t/        d      w xY w)NrH    basicrN   rP   dirnameis_dirdetails
namespacessize   typez info should be JSON serializablera   Fr   r   )accessstatr   accessedmodifiedcreatedmetadata_changed)r   getinfor<   r   r&   r   assertInr   r|   rj   rawr=   r   r-   rc   intr   file
getdetailsjsondumpsrQ   
ValueErrorAssertionErrorgetr   float)r   	root_infoinfono_infor   s        r   test_getinfozFSTestCases.test_getinfo  s*    GGOOC(	,	(()gy334 	5&) wwu%))gt$d7mF3Y?gv.6gx01 wwu%))gt$gv.6Wh/0 wwu)=AAgt$dD)i0!4i0#l6G6G2HI 	tww11%8<<=	EJJt
 ''//%)>?CCgt,)EU+KL
 wwu1NO 'hhy)G!!'++j"9DJU;ST!!'++j"9DJU;ST!!'++i"84:sE:RS!!./$t*c51I ( :& 	E !CDD	Es   O O1c                    | j                  | j                  j                  d             | j                  | j                  j                  d             | j                  | j                  j                  d             | j                  | j                  j                  d             | j                  | j                  j                  d             | j                  | j                  j                  d             | j                  j	                  d       | j                  j                  dd       | j                  | j                  j                  d             | j                  | j                  j                  d             | j                  | j                  j                  d             | j                  | j                  j                  d             | j                  d       | j                  d       | j                  d       | j                  d       | j                  j                  d       | j                  d       | j                  | j                  j                  d             | j                  d       | j                  | j                  j                  d             | j                  | j                  j                  d             y )NrH   r   rN   foo/barfoo/bar/bazegg   test)	r&   r   r'   r-   makedirsr|   r*   r.   remover   s    r   test_existszFSTestCases.test_exists  s    	s+,r*+ 	./	2367./ 	#='2 	u-.y12}56./5!9%=)u% 	}%}-67}- 	s+,r*+r   c                    | j                  t        j                        5  | j                  j	                  d       d d d        | j                  | j                  j	                  d      g        | j                  | j                  j	                  d      g        | j                  | j                  j	                  d      g        | j                  j                  dd       | j                  j                  dd       | j                  j                  d       | j                  j                  d	d       t        j                  | | j                  j	                  d      g d
       t        j                  | | j                  j	                  d      g d
       t        j                  | | j                  j	                  d      g d
       | j                  j	                  d      D ]  }| j                  |t                | j                  j                  d       | j                  | j                  j	                  d      g        | j                  j                  dd       | j                  j                  dd       t        j                  | | j                  j	                  d      ddg       | j                  j	                  d      D ]  }| j                  |t                | j                  j                  d       | j                  t        j                        5  | j                  j	                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)NfoobarrH   .z./rN      eggrO   rV   zbaz/egg)rN   rO   rV   r   z/dirz
dir/foofooz
dir/barbarfoofoobarbarnotadir)rI   r	   rr   r   listdirr<   r|   rj   r\   assertCountEqualr=   r   ri   DirectoryExpected)r   r   s     r   test_listdirzFSTestCases.test_listdir1  ss   v667 	&GGOOH%	& 	-r2-r2.3 	5&)5&) 	9f- 	T477??3#79NOT477??3#79NOT477??4#8:OP GGOOC( 	3D!!$	2	3 	 	0"5 	<0<0 	T477??5#9Hh;OPGGOOE* 	3D!!$	2	3 	y!v778 	'GGOOI&	' 	'U	& 	&T	' 	's   M MMMc                    | j                   j                  dd       | j                  d       | j                   j                  dd       | j	                  d       | j                  d       | j                  dd       | j                   j                  dd       | j                  t        j                        5  | j                   j                  dd       d d d        | j                   j                  ddd       | j	                  d       | j                  t        j                        5  | j                   j                  dd       d d d        | j                  t        j                        5  | j                   j                  d	d
       d d d        | j                   j                  d       | j                   j                  dd       | j                   j                  d       | j                   j                  dd       | j	                  d       | j                  dd       | j                  d       | j	                  d       | j                  t        j                        5  | j                   j                  dd       d d d        y # 1 sw Y   xY w# 1 sw Y   SxY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrN   r   rO   foo2   eggeggT	overwritezegg/barr   spamrV   z
baz/bazbazs   bazbazbaz2zbaz2/bazbazyolk)r   r|   r4   mover.   r*   r@   rI   r	   DestinationExistsrr   rj   r7   rJ   r   s    r   	test_movezFSTestCases.test_move`  s   5&)5! 	UE" 	u% 	5!%( 	69-v778 	(GGLL'	( 	VUd3v& v667 	+GGLL	*	+ v667 	(GGLL'	( 	<3\=1|,-3 	&!v&v223 	)GGLL(	) 	)5	( 	(	+ 	+	( 	(	) 	)s0   9J,J0J''J4JJ$'J14J=c                    | j                  t        j                        5  | j                  j	                  d       d d d        | j                  j	                  dd      }| j                  |t               | j                  | j                  j                  d      g        | j                  d       | j                  j	                  d       | j                  d       | j                  | j                  j                  d      t        j                         | j                  j                  dd       | j                  dd       | j                  t        j                        5  | j                  j	                  d       d d d        | j                  t        j                         5  | j                  j	                  d       d d d        | j                  j	                  d       | j                  j	                  d       | j                  t        j                        5  | j                  j	                  d	       d d d        | j                  t        j                        5  | j                  j	                  d       d d d        y # 1 sw Y   OxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   sxY w# 1 sw Y   y xY w)
NrH   TrecreaterN   foo/bar.txtr   /foo/bar/baz/foo/barr   )rI   r	   DirectoryExistsr   rj   r=   r   r<   r   r.   r7   gettyper   	directoryr|   r@   rr   )r   slash_fss     r   test_makedirzFSTestCases.test_makedir  s   v556 	!GGOOC 	! 77??3?6h.-r2u%% /1G1GH=&1-0 v556 	#GGOOE"	# v667 	,GGOON+	, 	
#'v556 	+GGOOM*	+ v556 	+GGOOM*	+ 	+;	! 	! 	# 	#	, 	,	+ 	+	+ 	+s;   J	%J(J#!J/$J;	JJ #J,/J8;Kc                 *   | j                  | j                  j                  d             | j                  j                  d       | j	                  | j                  j                  d      t        j                         | j                  j                  d       | j                  | j                  j                  d             | j                  | j                  j                  d             | j                  t        j                        5  | j                  j                  d       d d d        | j                  j                  dd       | j                  j                  dd       | j                  t        j                        5  | j                  j                  d       d d d        | j                  t        j                        5  | j                  j                  d	       d d d        y # 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   y xY w)
NrN   r   r   Tr   foo.binr   zfoo.bin/barzfoo.bin/bar/baz/egg)r-   r   r'   r   r<   r   r   r   r&   r6   rI   r	   r   r|   r   r   s    r   test_makedirszFSTestCases.test_makedirs  s|   .//1G1GH'i01m45v556 	,GG]+	, 	69g.v778 	,GG]+	, v778 	4GG23	4 	4	, 	,	, 	,	4 	4s$   G1	G=H	1G:=H	Hc                 T   | j                   j                  d       | j                  | j                   j                  d      dg       | j                  | j                   j                  d      dg       | j                  | j                   j                  d      dg       | j                  | j                   j                  d      g        t	        | j                   j                  d            }| j                  t        |      d       | j                  |d   j                  d       y )Nzfoo/foo/foor   rN   zfoo/foor   r   )r   r   r<   r   listscandirlenr   )r   scans     r   test_repeat_dirzFSTestCases.test_repeat_dir  s     	',ug6/%93eW=7<DGGOOE*+TA&au-r   c                 ,   | j                  t        j                        5  | j                  j	                  dd       d d d        | j                  j                  d       d}| j                  j	                  dd      5 }t        |       | j                  |t        j                         | j                  |j                                | j                  |j                                | j                  |j                         |j                  |       d d d        | j                  j                         | j                  j	                  dd      5 }| j                  |t        j                         | j                  |j                                | j                  |j                                | j                  |j                         |j!                         }d d d        | j                  |j                         | j#                  |       | j%                  d|       d}| j                  j	                  dd      5 }|j                  |       d d d        | j%                  d|       | j                  t        j                        5  | j                  j	                  d	       d d d        | j                  j	                  d      5 }	 |j'                         }| j#                  t)        j                   |d
      d       d d d        t(        j,                  j/                  g d      }| j                  j1                  d|       | j                  j	                  d      5 }t3        ||j5                  d            D ]  \  }}| j#                  ||        	 d d d        y # 1 sw Y   ixY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   yxY w# 1 sw Y   1xY w# t        j*                  $ r Y w xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr{   rrN   Hello, World	foo/hellowtrB   Goodbye, World/foo/bar/test.txt      Goodbye)zLine 1zLine 2zLine 3ziter.txtr   )rI   r	   rr   r   rC   rj   r[   r=   ioIOBaser&   writabler-   readableclosedwriterD   r<   rF   filenoosUnsupportedOperationlinesepjoin	writetextzip
splitlinesr   textrE   hellofnlinesactualexpecteds           r   	test_openzFSTestCases.test_open  s$   v667 	.GGLL-	. 	 WW\\+t, 	G!!!RYY/OOAJJL)QZZ\*QXX&GGDM	 	! WW\\+t, 	!!!RYY/OOAJJL)QZZ\*QXX&FFHE	 	!%d+  WW\\+t, 	GGDM	d+ v667 	.GGLL,-	. WW\\+& 	=!=XXZ   Q<	= 

 >?*e,WW\\*% 	3$'5+;+;A+>$? 3   23	3 	3e	. 	.	 		 		 	
	. 	. ** 	= 	=	3 	3sy   N$>BN1B
N>OOO>O%&O>$6P
$N.1N;>OOO"%O;8O>:O;;O>>P
Pc                 X
   | j                  t        j                        5  | j                  j	                  dd       d d d        | j                  j                  d       d}| j                  j	                  dd      5 }t        |       | j                  d|j                         | j                  |t        j                         | j                  |j                                | j                  |j                                | j!                  t#        |      |j%                  |             | j                  |j&                         d d d        | j                  j&                         | j                  t        j(                        5  | j                  j	                  dd      5 }	 d d d        d d d        | j                  j	                  dd      5 }| j                  d|j                         | j                  |t        j                         | j                  |j                                | j                  |j                                |j+                         }| j                  |j&                         d d d        | j                  |j&                         | j!                  |       | j-                  d|       d	}| j                  j	                  dd      5 }| j!                  t#        |      |j%                  |             d d d        | j-                  d|       | j                  t        j.                        5  | j                  j	                  d       d d d        | j                  t        j                        5  | j                  j	                  d
       d d d        | j                  j	                  d      5 }	 |j1                         }| j!                  t3        j*                  |d      d       d d d        dj7                  g d      }| j                  j9                  d|       | j                  j	                  d      5 }t;        ||j=                  d            D ]  \  }}| j!                  ||        	 d d d        y # 1 sw Y   VxY w# 1 sw Y   WxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   KxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   JxY w# t        j4                  $ r Y w xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr{   r   rN   s   Hello, World
r   wbxs   Goodbye, Worldr   r   r      
)s   Line 1s   Line 2s   Line 3ziter.binr   )rI   r	   rr   r   rK   rj   r[   r   moder=   r   r   r&   r   r-   r   r<   r   r   r   
FileExistsrD   r@   rJ   r   r   r   r  r|   r  r  r  s           r   test_openbin_rwzFSTestCases.test_openbin_rw	  s   v667 	1GGOONC0	1 	 !WW__[#. 	'!GMM#qvv&!!!RYY/OOAJJL)QZZ\*SY6QXX&	' 	!v001 	c2 a	
 WW__[#. 	'!MM#qvv&!!!RYY/OOAJJL)QZZ\*FFHEQXX&	' 	!%+t, !WW__[#. 	7!SY6	7+t, v223 	#GGOOE"	# v667 	1GGOO/0	1 WW__[) 	=Q=XXZ   Q<	= 

<=:u-WW__Z( 	3A$'5+;+;A+>$? 3   23	3 	3y	1 	1	' 	' 	 	
	' 	'	7 	7
	# 	#	1 	1 ** 	= 	=	3 	3s   R>CRR8(R+*R8B&S!+SSS,T	S9&T6T RR(+R5	0R88SSSS),S69TTTTT T)c                 x   | j                   j                  dd      5 }t        |       t        |       | j	                  |t
        j                         | j                  |j                                | j                  |j                                | j                  |j                         | j                  |j                         d       |j                  d       | j                  |j                         d       |j                  g d       | j!                  t"              5  |j%                  d       d d d        d d d        | j                  j                         | j                   j                  dd	      5 }| j!                  t"              5  |j%                  d       d d d        d d d        | j                   j                  dd
      5 }t        |       t        |       | j	                  |t
        j                         | j                  |j                                | j                  |j                                | j                  |j                         | j                  |j'                         g d       | j!                  t"              5  |j                  d       d d d        d d d        | j                  |j                         | j                   j                  dd      5 }| j	                  |t
        j                         | j                  |j                                | j                  |j                                | j                  |j                         | j                  |j'                  d      ddg       | j                  |j                         d       t)        d      }| j                  |j+                  |      d       | j                  |j                         d       | j                  |d       | j!                  t"              5  |j                  d       d d d        d d d        | j                  |j                         | j                   j                  dd
      5 }| j                  t-        |      g d       | j                  |j                         d d d        | j                  |j                         | j                   j                  d      5 }t/        |      }| j                  t1        |      d       d d d        | j                   j                  dd      5 }| j                  d|j                  d             d d d        | j                   j                  dd      5 }| j	                  |t
        j                         | j                  |j                                | j                  |j                                | j                  |j3                                | j                  |j                         | j                  |j%                  d      d       | j                  d|j5                  dt6        j8                               | j                  |j%                  d      d       | j                  d|j5                  dt6        j:                               | j                  |j%                  d      d       | j                  d|j5                  dt6        j<                               | j                  |j%                  d      d        | j!                  t>              5  |j5                  d!d"       d d d        d d d        | j                  |j                         | j                   j                  dd#      5 }| j	                  |t
        j                         | j                  |j                                | j                  |j                                | j                  |j3                                | j                  |j                         | j                  d$|j5                  d$             | j                  d$|jA                                | j                  d|j5                  d             | j                  |j%                         d%       | j                  d!|jA                  d!             | j                  d$|j                                | j                  d|j5                  d             tC        t        | j                                tC        t        |             | j                  |j%                         d&       | j                  d|j5                  d             |j                  d'       | j                  d|j5                  d             | j                  |j%                  d      d'       d d d        | j                  |j                         y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   |xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   "xY w# 1 sw Y   'xY w# 1 sw Y   xY w# 1 sw Y   dxY w# 1 sw Y   +xY w# 1 sw Y   ?xY w# 1 sw Y   DxY w# 1 sw Y   xY w)(Nr  r  r   zHello
World
   )foo
bar
baz
r   binr   r   )Hello
zWorld
r  r  r  norb   s   Hello
s   World
      s   foo
s   nor  unicodeu   Héllo
Wörld
   Hr      l         W      z
   M   r+b   s   Hellos
   Hello        O)"r   rC   r[   r   r=   r   r   r&   r   r-   r   r   r<   tellr   
writelinesrI   IOErrorrD   	readlines	bytearrayreadintor   iternextseekableseekr   setcurrentendr   truncateprint)r   rE   buffer
iter_liness       r   test_open_fileszFSTestCases.test_open_filesK  s    WW\\&#& 	!GaL!!!RYY/OOAJJL)QZZ\*QXX&QVVXq)GG$%QVVXr*LL45""7+ q		 	!WW\\%& 	!""7+ q		 WW\\&#& 	!GaL!!!RYY/QZZ\*OOAJJL)QXX&P ""7+ 	 	!WW\\&$' 	1!!!RYY/QZZ\*OOAJJL)QXX&Q[[^j*-EFQVVXr*q\FQZZ/3QVVXr*VX.""7+ 	 	!WW\\&#& 	'!T!W&WXQXX&	' 	!WW\\&! 	:QaJT*-y9	: WW\\)S) 	>QR);!<=	> WW\\&$' 	1!!!RYY/QZZ\*OOAJJL)OOAJJL)QXX&QVVAY-Qq$(( 34QVVAY-Qq$,, 78QVVAY-RDHH!56QVVAY-"":. r2	 	!WW\\&%( 	.A!!!RYY/OOAJJL)OOAJJL)OOAJJL)QXX&Qq	*Q

-Qq	*QVVXx0RB0Q)Qq	*$tww- $q'NQVVX'9:Qq	*GGDMQq	*QVVAY-'	.( 	!m 	 	  	 	 	 	2 	 		' 	'
	: 	:	> 	>  	 	"	. 	.s   D	h&h8h?h.h!'h.Cih;,i3D0i"#i5i"<9i/3'i<>"j	Gj#jj# Ij0h	hh!h+	&h..h8;i	 iii	i""i,/i9<j	jj 	j##j-0j9c                 	   | j                   j                  dd      5 }t        |       t        |       | j	                  d|j
                         | j                  |t        j                         | j                  |j                                | j                  |j                                | j                  |j                         | j                  d|j                  d             d d d        | j                  j                         | j                   j                  dd      5 }t        |       t        |       | j	                  d|j
                         | j                  |t        j                         | j                  |j                                | j                  |j                                | j                  |j                         |j!                         }d d d        | j                  d       | j                  j                         | j#                  t$              5  | j                   j                  dd      5 }	 d d d        d d d        | j#                  t&        j(                        5  | j                   j                  d       d d d        | j#                  t&        j(                        5  | j                   j                  d	       d d d        | j                   j+                  d
       | j#                  t&        j,                        5  | j                   j                  d       d d d        | j#                  t&        j,                        5  | j                   j                  dd       d d d        | j#                  t&        j(                        5  | j                   j                  d       d d d        | j#                  t&        j(                        5  | j                   j                  dd       d d d        | j#                  t$              5  | j                   j                  dd       d d d        y # 1 sw Y   `xY w# 1 sw Y   rxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ^xY w# 1 sw Y   'xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nzfile.binr   r  r   s    r  rB   r   r   rN   r   r  z/egg/barh)r   rK   r[   r   r   r  r=   r   r   r&   r   r-   r   r   r<   r   rD   rI   r   r	   rr   rj   rJ   )r   
write_file	read_filer?   s       r   test_openbinzFSTestCases.test_openbin  s   WW__Z. 	=*j!MM#z/!!*bii8OOJ//12Z0023Z../Q
 0 0 ;<	= 	
))* WW__Z. 	$)j!MM#y~~.!!)RYY7OOI..01Y//12Y--.>>#D	$ 	y)	(() z* 	T2 i	
 v667 	'GGOOI&	' v667 	1GGOO/0	1 	v223 	$GGOOF#	$ v223 	)GGOOFC(	) v667 	(GGOOJ'	( v667 	-GGOOJ,	- z* 	,GGOOIs+	, 	,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-0R9<SSc                 (   | j                   j                  dd      5 }|j                  d       d d d        | j                  t        j
                        5  | j                   j                  dd       d d d        y # 1 sw Y   NxY w# 1 sw Y   y xY w)Ntest_open_exclusiver  bananas)r   rC   r   rI   r	   r  r   rE   s     r   rG  zFSTestCases.test_open_exclusive  s{    WW\\/5 	GGI	 v001 	5GGLL.4	5 	5	 		5 	5   A<B<BBc                 (   | j                   j                  dd      5 }|j                  d       d d d        | j                  t        j
                        5  | j                   j                  dd       d d d        y # 1 sw Y   NxY w# 1 sw Y   y xY w)Ntest_openbin_exclusiver  s   bananas)r   rK   r   rI   r	   r  rI  s     r   rL  z"FSTestCases.test_openbin_exclusive  s{    WW__5s; 	 qGGJ	  v001 	;GGOO4c:	; 	;	  	 	; 	;rJ  c                    | j                   j                  d       | j                   j                  dd       | j                   j                  dd       | j                   j                  d      5 }t	        |       t        |       t        j                  | |j                  d      ddg       | j                  |j                  d             | j                  |j                  d             | j                  |j                  d      d       | j                  |j                  d      d       d d d        | j                  | j                   j                                | j                  t         j"                        5  | j                   j                  d       d d d        | j                  t         j$                        5  | j                   j                  d       d d d        | j                   j                  d	       | j                   j                  d       | j                   j                  dt&        
      5 }t        j                  | |j                  d      ddg       | j                  |j                  d             | j                  |j                  d             | j                  |j                  d      d       | j                  |j                  d      d       d d d        | j                  | j                   j                                y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   ZxY w)NrN   r   s   barbarfoo/eggr   rH   rO   r   r   )factory)r   rj   r|   opendirr[   r   r\   r   r   r&   r3   r<   r;   r-   isclosedrI   r	   rr   r   r   r   foo_fss     r   test_opendirzFSTestCases.test_opendir  su   9i09i0 WW__U# 	AvLf  v~~c':UENKOOFMM%01OOFMM%01V--e4i@V--e4i@	A 	))+, v667 	#GGOOE"	# v778 	'GGOOI&	' 	 WW__UL_9 	AV  v~~c':UENKOOFMM%01OOFMM%01V--e4i@V--e4i@	A 	((*+?	A 	A	# 	#	' 	'	A 	As2   /CL L(L5>B+ML%(L25L?Mc                    | j                   j                  dd       | j                   j                  dd       | j                   j                  dd       | j                  d       | j                  d       | j                  d       | j                   j                  d       | j                  d       | j	                  d       | j                  d       | j                  t        j                        5  | j                   j                  d       d d d        | j                   j                  d       | j                  t        j                        5  | j                   j                  d       d d d        | j                   j                  d	       d
}t        | d| j                        } |t        j                  |      5  | j                   j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nfoo1s   test1r   s   test2foo3s   test3rO   r   zfoo/bar/baz/z)resource 'foo/bar/egg/test.txt' not foundassertRaisesRegexzfoo/bar/egg/test.txt)r   r|   r4   r   r.   rI   r	   rr   rj   rJ   r   getattrrX  )r   	error_msgrX  s      r   test_removezFSTestCases.test_remove#  s   68,68,68,6"6"6"v6"v&6"v667 	"GGNN5!	" 	v223 	"GGNN5!	" 	(?	#D*=t?U?UVv66	B 	3GGNN12	3 	3	" 	"	" 	"	3 	3s$   5G'G3G?'G03G<?Hc                 T   | j                  t        j                        5  | j                  j	                  d       d d d        | j                  j                  d       | j                  | j                  j                  d             | j                  j	                  d       | j                  | j                  j                  d             | j                  | j                  j                  d             | j                  t        j                        5  | j                  j	                  d       d d d        | j                  j                  d       | j                  j                  dd       | j                  t        j                        5  | j                  j	                  d       d d d        | j                  t        j                        5  | j                  j	                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   fxY w# 1 sw Y   y xY w)NrH   r   r   nodirrN  r   )rI   r	   RemoveRootErrorr   	removedirr   r&   r'   r-   r6   rr   r|   r   DirectoryNotEmptyr   s    r   test_removedirzFSTestCases.test_removedirA  s    v556 	#GGc"	# 	'}56-(67i01v667 	'GGg&	' 	'9g.v778 	)GGi(	) v778 	)GGi(	) 	)'	# 	#	' 	'	) 	)	) 	)s/   G9HHH9HHHH'c                 P   | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d	       | j                   j                  d
       | j                  d       | j                  d       | j                   j	                  d       | j                  d       | j                  d       | j                   j                  d       | j                  t        j                        5  | j                   j	                  d       d d d        | j                  t        j                        5  | j                   j	                  d       d d d        y # 1 sw Y   MxY w# 1 sw Y   y xY w)Nr   r   rN  foo/a/b/c/d/efoo/egg.txtfoo/bar/egg.binzfoo/bar/baz/egg.txtfoo/a/b/c/1.txtfoo/a/b/c/2.txtfoo/a/b/c/3.txtrN   rO   r   )
r   r   ri   r*   
removetreer.   rI   r	   r   rr   r   s    r   test_removetreezFSTestCases.test_removetreeZ  s    '#)}%(),-()()()=),-5!u%6" 	uv778 	&GGu%	& v667 	)GGx(	) 	)		& 	&	) 	)s   (H+HHH%c                 "   | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                  d       | j                  d       | j                   j	                  d	       | j                  d	       | j                  d	       | j                   j                  d
       | j                   j                  d       | j                  d
       | j                  d       y )Nr   rN  rc  rd  re  rf  rg  rh  rH   r   r   )r   r   ri   r*   ri  r1   rj   r   s    r   test_removetree_rootz FSTestCases.test_removetree_rootv  s   '#)}%()()()()=),- 	33C  	u5!6"r   c                 |   | j                   j                  d       t        j                         }d|dz   |dz   di}| j                   j                  d|       | j                   j	                  ddg      }|j                  dd      }|j                  dd      }|r'| j                  |j                  dd      |dz   d	
       |r'| j                  |j                  dd      |dz   d	
       | j                  t        j                        5  | j                   j                  di        d d d        y # 1 sw Y   y xY w)Nbirthday.txtr   <   i  )r   r   r   r   r   r  )placesnothing)r   ri   timesetinfor   is_writeableassertAlmostEqualr   rI   r	   rr   )r   nowchange_infonew_infocan_write_acccesscan_write_modifieds         r   test_setinfozFSTestCases.test_setinfo  s   ~&iik sRxS7]"ST477??>yk?J$11)ZH%229jI""Y
3S2Xa #  ""Y
3S7]1 #  v667 	+GGOOIr*	+ 	+ 	+s   D22D;c           	         | j                   j                  d       | j                   j                  dt        ddd             | j                   j	                  ddg      }|j                  dd      }|j                  dd	      }|r7| j                  |j                  t        dddt        j                  
             |r8| j                  |j                  t        dddt        j                  
             y y )Nrn    r   r-  )r   r   r   r   r   tzinfo)r   ri   settimesr   r   rt  r<   r   r   utcr   )r   r   ry  rz  s       r   test_settimeszFSTestCases.test_settimes  s    ~&(4A2FGww~9+F --iD!..y*ET]]HT1a,UVT]]HT1a,UV r   c           	      b   | j                   j                  d       | j                  d       | j                   j                  dt	        ddd             | j                   j                  ddg      }|j                  dd      r| j                  |j                  t	        dddt        j                               t        j                         }| j                   j                  d       | j                   j                  ddg      j                  d   d   }| j                  ||z
  dk         y y )	Nznew.txtr}  r   r-  r   r   r   r~  )r   rp   r4   r  r   r   rt  r<   r   r   r  rr  r   r&   )r   r   rv  r   s       r   
test_touchzFSTestCases.test_touch  s    i 9%HT1a$89wwyi[AY
3T]]HT1a,UV))+CGGMM)$wwyi[IMMH OOHsNQ./ 4r   c                     | j                  | j                  j                                | j                  j                          | j	                  | j                  j                                | j                  j                          | j	                  | j                  j                                | j                  t        j                        5  | j                  j                  d       d d d        y # 1 sw Y   y xY w)Nztest.bin)	r-   r   rQ  r   r&   rI   r	   FilesystemClosedrK   r   s    r   
test_closezFSTestCases.test_close  s    ))+,((*+((*+ v667 	(GGOOJ'	( 	( 	(s   C44C=c                    | j                   j                  dd       | j                   j                  dd       | j                  dd       | j                   j                  dd       | j                   j                  ddd       | j                  dd       | j	                  t
        j                        5  | j                   j                  dd       d d d        | j	                  t
        j                        5  | j                   j                  dd       d d d        | j	                  t
        j                        5  | j                   j                  d	d
       d d d        | j                   j                  d       | j	                  t
        j                        5  | j                   j                  dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrN   r   rO   rV   s
   truncatemeTr   z	a/b/c/bazr   r   r   folder)
r   r|   copyr@   rI   r	   r   rr   rj   rJ   r   s    r   	test_copyzFSTestCases.test_copy  s}   5'*UE"%) 	5-0UET2%) v778 	'GGLL&	' v667 	-GGLL,	- v667 	(GGLL'	( 	v223 	*GGLL)	* 	*	' 	'	- 	-	( 	(
	* 	*s0   6G:G>GG'GGG$'G0c                    t        d      5 }|j                  d| j                         |j                  d| j                         |j	                  d      j                  d| j
                         |j                  d      j                  d| j                         | j                  }t        j                  j                  |||       | j                  |j                  d      | j                         | j                  |j                  d      | j                         | j                  |j                  d	      | j
                         | j                  |j                  d
      | j                         ddd       y# 1 sw Y   yxY wz3Test fs.copy with varying number of worker threads.temp://rN   rO   dir1rV   z	dir2/dir3r   )workerszdir1/bazzdir2/dir3/eggN)r   r|   data1data2rj   data3r   data4r   r  copy_fsr<   r;   r   r  src_fsdst_fss       r   _test_uploadzFSTestCases._test_upload  s"   Y 
	L6eTZZ0eTZZ0NN6"--eTZZ@OOK(33E4::FWWFGGOOFFGO<V--e4djjAV--e4djjAV--j94::FV--o>

K
	L 
	L 
	Ls   E)E>>Fc                 &    | j                  d       y Nr   r  r   s    r   test_upload_0zFSTestCases.test_upload_0      !r   c                 &    | j                  d       y Nr   r  r   s    r   test_upload_1zFSTestCases.test_upload_1  r  r   c                 &    | j                  d       y Nr%  r  r   s    r   test_upload_2zFSTestCases.test_upload_2  r  r   c                 &    | j                  d       y Nr  r  r   s    r   test_upload_4zFSTestCases.test_upload_4  r  r   c                    | j                   }t        d      5 }|j                  d| j                         |j                  d| j                         |j                  d      j                  d| j                         |j                  d      j                  d| j                         t         j                  j                  |||       | j                  |j                  d      | j                         | j                  |j                  d      | j                         | j                  |j                  d	      | j                         | j                  |j                  d
      | j                         ddd       y# 1 sw Y   yxY wr  )r   r   r|   r  r  rj   r  r   r  r  r  r<   r;   r  s       r   _test_downloadzFSTestCases._test_download  s"   Y 		L6eTZZ0eTZZ0NN6"--eTZZ@OOK(33E4::FGGOOFFGO<V--e4djjAV--e4djjAV--j94::FV--o>

K		L 		L 		Ls   EE>>Fc                 &    | j                  d       y r  r  r   s    r   test_download_0zFSTestCases.test_download_0      Ar   c                 &    | j                  d       y r  r  r   s    r   test_download_1zFSTestCases.test_download_1  r  r   c                 &    | j                  d       y r  r  r   s    r   test_download_2zFSTestCases.test_download_2  r  r   c                 &    | j                  d       y r  r  r   s    r   test_download_4zFSTestCases.test_download_4  r  r   c                    | j                  | j                  j                  d             | j                  j                  d       | j	                  | j                  j                  d             | j                  | j                  j                  d      t        j                         | j                  | j                  j                  d      d       | j                  j                  dd       | j                  | j                  j                  d      d       | j                  j                  dd       | j                  | j                  j                  d      d       | j                  j                  dd       | j                  | j                  j                  d      d       | j                  j                  dd       | j                  | j                  j                  d      d       y )NrN   r   rP   r   T)wipeF)r-   r   r'   ri   r&   r<   r   r   r   r~   r|   r   s    r   test_createzFSTestCases.test_create  sN   ./uu-./1B1BC/3 	5&)/3u4(/3 	5&)/3u5)/3r   c                    | j                   j                  d       | j                   j                  d      }| j                  |t               | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                  t        j                        5  | j                   j                  d       d d d        y # 1 sw Y   y xY w)NrN   r   rH   r   rO   )	r   ri   descr=   r   rj   rI   r	   rr   )r   descriptions     r   	test_desczFSTestCases.test_desc0  s    uggll5)k95 	U 	SRv667 	 GGLL	  	  	 s   C==Dc           	      P   | j                  t        j                        5  | j                  j	                  d      D ]  } 	 d d d        | j                  j	                  d      }| j                  t        |t        j                               | j                  t        |      g        | j                  j                  d       | j                  t        j                        5  t        | j                  j	                  d             d d d        | j                  j                  d       | j                  j                  d       | j                  j	                  d      }| j                  t        |t        j                               t        d |D        d       }|D cg c]	  }d	|d	   i }}| j                  |d	dd
did	dddid	dd
dig       t        | j                  j	                  dg d             t        | j                  j	                  dd            }| j                  t        |      d       t        | j                  j	                  dd            }| j                  t        |      d       t        | j                  j	                  dd            }| j                  t        |      d       t!        j"                  ||      D ch c]  }|j$                   }	}| j                  |	h d       y # 1 sw Y   xY w# 1 sw Y   xY wc c}w c c}w )Nz/foobarrH   rN   rO   r   c              3   4   K   | ]  }|j                     y wr!   )r   ).0r   s     r   	<genexpr>z+FSTestCases.test_scandir.<locals>.<genexpr>Y  s     )qQUU)   c                     | d   d   S )Nr   r    )r   s    r   <lambda>z*FSTestCases.test_scandir.<locals>.<lambda>Y  s    DM&<Q r   )keyr   Fr   T)r   linkr   lstatr   r   r  pager%  r%  r  r   r  r$  r   >   rO   r   rN   )rI   r	   rr   r   r   r&   r9   collections_abcIterabler<   r   ri   r   rj   sortedr   	itertoolschainr   )
r   _infoiter_scandirr   ipage1page2page3r   pageds
             r   test_scandirzFSTestCases.test_scandirA  s   v667 	3 	
 wws+
<1I1IJKl+R0 	u v778 	)'(	) 	uwws+
<1I1IJK)L)/Q
 3::QGQwZ(::5E:;5D9:5E:;	
 	GGOO N  	
 TWW__Sy_9:UQ'TWW__Sv_67UQ'TWW__Sv_67UQ'!*!>?A?? 56k	 		) 	) ;2 @s#   !L#%L#LL#LLc                    | j                  t        | j                  j                  ddg            g        | j                  j	                  d       | j                  j                  d       | j                  j                  d       | j                  j                  d       t        | j                  j                  dd	            }t        | j                  j                  dd
	            }t        | j                  j                  dd	            }| j                  t        |      d       | j                  t        |      d       | j                  t        |      d       t        j                  |||      D cg c]  }|j                   }}| j                  t        |      h d       | j                  j                  ddg      D cg c]  }|j                   }}| j                  t        |      ddh       | j                  j                  dddg      D cg c]  }|j                   }}| j                  t        |      h d       | j                  j                  ddgddg      D cg c]  }|j                   }}| j                  t        |      ddh       | j                  j                  ddg      D cg c]  }|j                   }}| j                  t        |      dh       | j                  t              5  | j                  j                  dd      D cg c]  }|j                   }}d d d        | j                  j	                  d       | j                  j                  ddgdg      D cg c]  }|j                   }}| j                  t        |      dh       | j                  t              5  | j                  j                  ddgd      D cg c]  }|j                   }}d d d        y c c}w c c}w c c}w c c}w c c}w c c}w # 1 sw Y   xY wc c}w c c}w # 1 sw Y   y xY w)NrH   *.py)filesrO   rh   foo.pyfoo.pycr  r  r  r  r%  r   >   rO   r  r  rh   z*.pyc>   rO   r  r  *)exclude_dirsr  )exclude_filesrV   z??z)r  dirs)r<   r   r   	filterdirrj   ri   r   r  r  r   r9  rI   rQ   )r   r  r  r  r   namesdir_lists          r   test_filterdirzFSTestCases.test_filterdirz  s   dgg//F8/DErJy!x y!TWW&&s&;<TWW&&s&89TWW&&s&89UQ'UQ'UQ''0ueU'KLtLLU%LM +/''*;*;Cx*;*PQ$DIIQQX(9: #'''"3"3C?P"3"Q
DII
 
 	X(DE
 ))3%/@ * 
 II
 
 	X9(=> +/''*;*;CPSu*;*UV$DIIVVX0 y) 	T.2gg.?.?6.?.RSd		SHS	T 	 ))#cU%)Q
 II
 
 	X0y) 	 !GG--c#V-T 		H 	 	K M R

 W
 T	T 	T
	 	s`    PP%P:P!P& P02P+P0P<"Q4QQ+P00P9QQc                    dj                  d t        d      D              }| j                  j                  dd      5 }|j	                  |       d d d        | j                  | j                  j                  d      |       | j                  j                  d      }| j                  |t               | j                  ||       | j                  t        j                        5  | j                  j                  d       d d d        | j                  j                  d       | j                  t        j                        5  | j                  j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   uxY w# 1 sw Y   y xY w)Nr   c              3   F   K   | ]  }t        j                  |        y wr!   r\   int2byter  ns     r   r  z-FSTestCases.test_readbytes.<locals>.<genexpr>       AS\\!_A   !r   rN   r   r   rV   )r  ranger   rC   r   r<   r;   r=   r:   rI   r	   rr   rj   rJ   )r   	all_bytesrE   
_all_bytess       r   test_readbyteszFSTestCases.test_readbytes  s/   HHAeCjAA	WW\\%& 	!GGI	**519=WW&&u-
j%0Y/v667 	)GGi(	) 	v223 	%GGe$	% 	%	 		) 	)	% 	%s#   E(%E5F(E25E>F
c                    d}| j                   j                  d|       t        j                         }| j                   j	                  d|       | j                  |j                         |       | j                  t        j                        5  | j                   j	                  d|       d d d        y # 1 sw Y   y xY w)N   Hello, World	hello.binr   )
r   r|   r   BytesIOdownloadr<   getvaluerI   r	   rr   r   
test_bytesrC  s      r   test_downloadzFSTestCases.test_download  s    $
;
3ZZ\
j1,,.
;v667 	4GGY
3	4 	4 	4s   B44B=c                     d}| j                   j                  d|       t        j                         }| j                   j	                  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)r   r|   r   r  r  r<   r  r  s      r   test_download_chunk_sizez$FSTestCases.test_download_chunk_size  sX    *
;
3ZZ\
jQ?,,.
;r   c                 J   | j                  | j                  j                  d             | j                  j                  d       | j	                  | j                  j                  d             | j                  | j                  j                  d             | j                  j                  d       | j	                  | j                  j                  d             | j                  j                  d       | j                  | j                  j                  d             y )NrH   rN   r   r   )r&   r   r0   rj   r-   ri   r   r   s    r   test_isemptyzFSTestCases.test_isempty  s    ,--./0}%01}%/0r   c                     dj                  d t        d      D              }| j                  j                  d|       | j                  j	                  dd      5 }|j                         }d d d        | j                  t               | j                  ||       | j                  d|       | j                  t              5  | j                  j                  dd       d d d        y # 1 sw Y   ~xY w# 1 sw Y   y xY w)Nr   c              3   F   K   | ]  }t        j                  |        y wr!   r  r  s     r   r  z.FSTestCases.test_writebytes.<locals>.<genexpr>  r  r  r   rN   r  notbytesr!  )r  r  r   r|   rC   rD   r=   r:   r<   r@   rI   rQ   )r   r  rE   _bytess       r   test_writebyteszFSTestCases.test_writebytes  s    HHAeCjAA	5),WW\\%& 	!VVXF	fe,+%+y) 	6GGz95	6 	6	 	
	6 	6s   C(C4(C14C=c                    | j                   j                  d       | j                   j                  dd      5 }|j                  t               d d d        | j                   j                  d      }| j                  |t               | j                  |t               | j                  dt               y # 1 sw Y   gxY w)NrN   zfoo/unicode.txtr   )
r   rj   rC   r   UNICODE_TEXTreadtextr=   r   r<   rF   )r   rE   r  s      r   test_readtextzFSTestCases.test_readtext  s    WW\\+T2 	"aGGL!	"ww 12dI.|,*L9	" 	"s   B44B=c                    | j                   j                  dd       | j                   j                  dd      5 }|j                         }d d d        | j	                  d       | j                  |t               | j                  t              5  | j                   j                  dd       d d d        y # 1 sw Y   lxY w# 1 sw Y   y xY w)NrN   rO   rB   nottexts   bytes)	r   r  rC   rD   r<   r=   r   rI   rQ   )r   rE   rN   s      r   test_writetextzFSTestCases.test_writetext  s    %'WW\\%& 	!&&(C	e$c9-y) 	3GGi2	3 	3		 		3 	3s   B5C5B>C
c                    t        j                  d      }| j                  j                  d|       | j                  j	                  dd      5 }|j                         }d d d        | j                  d       y # 1 sw Y   xY w)NrP   rN   r  )r   r  r   	writefilerC   rD   r<   r   
bytes_filerE   r?   s       r   test_writefilezFSTestCases.test_writefile  sh    ZZ'
%,WW\\%& 	!668D	v&	 	s   A::Bc                    t        j                  d      }| j                  j                  d|       | j                  j	                  dd      5 }|j                         }d d d        | j                  d       | j                  t        j                        5  | j                  j                  d|       d d d        y # 1 sw Y   `xY w# 1 sw Y   y xY w)NrP   rN   r  z
/spam/eggs)
r   r  r   uploadrC   rD   r<   rI   r	   rr   r  s       r   test_uploadzFSTestCases.test_upload  s    ZZ'
uj)WW\\%& 	!668D	v& v667 	5GGNN<4	5 	5	 	
	5 	5s   B>C
>C
Cc                    d}t        j                  |      }| j                  j                  d|d       | j                  j	                  dd      5 }|j                         }d d d        | j                  |       y # 1 sw Y   xY w)Ns  barbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarbarrN   r  r  r  )r   r  r   r  rC   rD   r<   )r   	test_datar  rE   r?   s        r   test_upload_chunk_sizez"FSTestCases.test_upload_chunk_size  so     	ZZ	*
ujQ7WW\\%& 	!668D	y)	 	s   A>>Bc                 t   | j                   j                  dd      5 }t        |       t        |       |j	                  d       |j	                  d       |j	                  d       d d d        | j                  dd       | j                   j                  dd      5 }|j                  dd	g       d d d        | j                  dd
       | j                   j                  d      5 }| j                  |j                         d       | j                  |j                         d	       d d d        | j                   j                  d      5 }|j                         }d d d        | j                  dd	g       | j                   j                  d      5 }t        |      }d d d        | j                  |dd	g       | j                   j                  d      5 }g }|D ]  }|j                  |        	 d d d        | j                  |dd	g       | j                   j                  d      5 }t        t        |             | j                  t        |      d       d d d        | j                   j                  dd      5 }|j                  d       d d d        | j                  | j                   j!                  d      d       | j                  dd       y # 1 sw Y   oxY w# 1 sw Y   2xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   lxY w# 1 sw Y   &xY w# 1 sw Y   xY w# 1 sw Y   xY w)NrV  r   rw      b   cs   abcr   s   hello
s   worlds   hello
worldr,  r   s   hel)r   rK   r   r[   r   r@   r0  r<   readliner2  r   appendr=  r6  rC   r<  r~   r   rE   r	  lines       r   test_bin_fileszFSTestCases.test_bin_files  s   WW__VT* 	aaLGGGDMGGDMGGDM	 	&&) WW__VT* 	1aLL*h/0	1&/2 WW__V$ 	5QZZ\:6QZZ\84	5
 WW__V$ 	"KKME	"X 67WW__V$ 	GE	X 67WW__V$ 	#E #T"#	# 	X 67WW__V$ 	2$q'NT!Wj1	2
 WW\\&%( 	AJJqM	0!4&&)M	 		1 	1
	5 	5
	" 	"	 		# 	#
	2 	2
	 	sa   A
KK!&AK.
K;LL(0L"<L.K!K+.K8;LLL"L+.L7c                    | j                   j                  dd      5 }t        |       t        |       |j	                  d       |j	                  d       |j	                  d       d d d        | j                  dd       | j                   j                  dd      5 }|j                  dd	g       d d d        | j                  dd
       | j                   j                  d      5 }| j                  |j                         d       | j                  |j                         d	       d d d        | j                   j                  d      5 }|j                         }d d d        | j                  dd	g       | j                   j                  d      5 }t        |      }d d d        | j                  |dd	g       | j                   j                  d      5 }g }|D ]  }|j                  |        	 d d d        | j                  |dd	g       | j                   j                  dd      5 }|j                  d       d d d        | j                  | j                   j                  d      d       | j                  dd       | j                   j                  dd      5 }|j	                  d       d d d        | j                  dd       t        j                          5  t        j"                  d       | j                   j                  dd      }~d d d        | j%                  t&              5  | j                   j                  dd      5 }|j	                  d       d d d        d d d        | j%                  t&              5  | j                   j                  dd      5 }|j)                  d       d d d        d d d        y # 1 sw Y   [xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   XxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   oxY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrV  r   ar  cabcr   zhello
worldzhello
worldzr+r   helab   ps   helpignorer   zno!newfoor  r%  )r   rC   r   r[   r   rF   r0  r<   r  r2  r   r  r<  r~   r@   warningscatch_warningssimplefilterrI   r1  rD   r  s       r   
test_fileszFSTestCases.test_filesB  s    WW\\&$' 	1aLGGGCLGGCLGGCL	 	' WW\\&$' 	/1LL)W-.	/0 WW\\&! 	4QQZZ\95QZZ\73	4
 WW\\&! 	"QKKME	"G 45WW\\&! 	QGE	G 45WW\\&! 	#QE #T"#	# 	G 45 WW\\&$' 	1JJqM	0!4'WW\\&$' 	1GGDM	&'* $$& 	!!(+VS)A	
 w' 	fc* a	 w' 	h, q		 	g	 		/ 	/
	4 	4
	" 	"	 		# 	#	 	
	 	
	 	 	 	
 	 	s   A
O O&AO
O'O4P)PP3P(,Q	P5Q QQ/Q O
OO$'O14O>PPP%(P25P>	:QQ
Q	QQ"c                    d}| j                   j                  d|       t         j                  j                  | j                   d| j                   d       | j	                  d|       t        d      }t         j                  j                  | j                   d|d       | j                  |j                  d      |       y )Nr  rh   zbar.txtmem://)r   r|   r  	copy_filer@   r   r<   r;   )r   
bytes_testmem_fss      r   test_copy_filezFSTestCases.test_copy_file|  s    $
9j1
$''9dggyA)Z0"
$''9fi@)))4jAr   c                 >   t        d      }| j                  j                  d       | j                  j                  d       t        j                  j                  | j                  |       h d}| j                  t        t        j                  |            |       y )Nr-  r   r      /eggr   r   r   )
r   r   r   rj   r  copy_structurer<   r9  r   	walk_dirs)r   r0  r  s      r   test_copy_structurezFSTestCases.test_copy_structure  si    "'
tww/?T^^F34h?r   c                 h   t        |      }| j                  j                  d       | j                  j                  d       | j                  j	                  dd       | j                  j	                  dd       t        j
                  j                  | j                  d|d       h d}| j                  t        t        j                  |            |       | j                  dd       | j                  dd       t        d	      }t        j
                  j                  | j                  d
|d       | j                  t        t        j                  |            dg       t        d       | j                  j                          |j                          t        j
                  j                  | j                  d
|d       t        d       | j                  j                          t        d       |j                          | j                  t        t        j                  |            ddg       y )Nr   r   top.txtr   /foo/bar/baz/test.txtr   rH   r3  r-  r   z/bar/baz/test.txtBEFOREr4  FSOTHERz/egg/bar/baz/test.txt)r   r   r   rj   r  r  copy_dirr<   r9  r   r6  rF   r   
walk_filesr=  treer   protocolother_fsr  s       r   _test_copy_dirzFSTestCases._test_copy_dir  s    8$')^413CD
#x5?T^^H56AN302BC 8$
&(C8dooh78;N:OPh
&(F;dg*+ "9:	
r   c                    t        |      }|j                  d       |j                  d       |j                  dd       |j                  dd       t        j
                  j                  |d| j                  d       h d}| j                  t        t        j                  | j                              |       | j                  dd       | j                  dd       y 	Nr   r   r9  r   r:  r   rH   r3  )r   r   rj   r  r   r  r>  r<   r9  r   r6  rF   rA  s       r   _test_copy_dir_writez FSTestCases._test_copy_dir_write  s     8$-(9n524DE
35?T^^DGG45x@N302BCr   c                 H    | j                  d       | j                  d       y Nr-  rD  rG  r   s    r   test_copy_dir_memzFSTestCases.test_copy_dir_mem  s    H%!!(+r   c                 H    | j                  d       | j                  d       y Nr  rJ  r   s    r   test_copy_dir_tempzFSTestCases.test_copy_dir_temp  s    I&!!),r   c                    | j                   j                  d       | j                   j                  d       | j                   j                  dd       | j                   j                  dd       t         j                  j                  | j                   d| j                   d       h d	}| j                  t        t        j                  | j                               |       | j                  dd       | j                  d
d       | j                  t        | j                   j                  d            g d       | j                  t        d | j                   j                  d      D              g d       y )Nr   r   r9  r   r:  r   rN   r   >   /foo2	/foo2/bar/foo2/bar/bazr4  z/foo2/bar/baz/test.txtrH   )r   r   r9  c              3   4   K   | ]  }|j                     y wr!   )r   )r  r  s     r   r  z4FSTestCases.test_move_dir_same_fs.<locals>.<genexpr>  s     8a1668r  )r   r   rj   r  r   move_dirr<   r9  r   r6  rF   r  r   r   )r   r  s     r   test_move_dir_same_fsz!FSTestCases.test_move_dir_same_fs  s   ')^413CD
%&9BT^^DGG45x@N313CD 457QR8477??3#788:T	
r   c                     t        |      }|j                  d       |j                  d       |j                  dd       |j                  dd       t        j
                  j                  |d| j                  d       h d}| j                  |j                  d      g        | j                  t        t        j                  | j                              |       | j                  dd       | j                  dd       y rF  )r   r   rj   r  r   r   rT  r<   r   r9  r   r6  rF   rA  s       r   _test_move_dir_writez FSTestCases._test_move_dir_write  s    8$-(9n524DE
35?))#.3T^^DGG45x@N302BCr   c                 &    | j                  d       y rI  rW  r   s    r   test_move_dir_memzFSTestCases.test_move_dir_mem  s    !!(+r   c                 &    | j                  d       y rM  rY  r   s    r   test_move_dir_tempzFSTestCases.test_move_dir_temp  s    !!),r   c                    d}| j                   j                  d      j                  d|       | j                  d|       t         j                  j                  | j                   d| j                   d       | j                  d       | j                  d|       | j                  | j                   j                  d      dg       | j                  t        | j                   j                  d            j                  d       y )Nr   rN   test.txtfoo/test.txtfoo/test2.txtz	test2.txt)r   rj   r  rF   r   	move_filer.   r<   r   r6  r   r   )r   r  s     r   test_move_file_same_fsz"FSTestCases.test_move_file_same_fs  s    ((T:.
$''>477OL~.$//+?dggooe45::KHr   c                    t        |      }d}| j                  j                  d      j                  d|       | j	                  d|       | j                  t        j                        5  t        j                  j                  | j                  d|d       d d d        |j                  d       t        j                  j                  | j                  d|d       | j                  |j                  d      |       y # 1 sw Y   hxY w)Nr   rN   r^  r_  r`  )r   r   rj   r  rF   rI   r	   rr   r   ra  r<   r  )r   rB  rC  r  s       r   _test_move_filezFSTestCases._test_move_file   s    8$((T:.v667 	RGGdgg~xQ	R 	
$''>8_M**?;TB	R 	Rs   *-C>>Dc                 &    | j                  d       y rI  rd  r   s    r   test_move_file_memzFSTestCases.test_move_file_mem  s    X&r   c                 &    | j                  d       y rM  rf  r   s    r   test_move_file_tempzFSTestCases.test_move_file_temp  s    Y'r   c                 T   | j                   j                  d       | j                   j                  dd       | j                   j                  d       | j                   j	                  dd       | j                  dd       | j                  d       | j                  dd       | j                  d       | j                  t        j                        5  | j                   j	                  dd	       d d d        | j                  t        j                        5  | j                   j	                  d
dd       d d d        | j                  t        j                        5  | j                   j	                  ddd       d d d        y # 1 sw Y   xY w# 1 sw Y   \xY w# 1 sw Y   y xY w)Nfoo/bar/baz/eggfoo/bar/foofoo.txtHellor   r   foo2/foofoo.txtfoo2/baz/eggrN   r   r   r   Tri   z
foofoo.txt)r   r   r  rj   copydirrF   r7   rI   r	   rr   r   r   s    r   test_copydirzFSTestCases.test_copydir  sO   *+.8	6**G4.)-w7+,v667 	-GGOOE8,	-v667 	8GGOOFE$O7	8v778 	JGGOO-|DOI	J 	J		- 	-	8 	8	J 	Js$   FFFFFF'c                 p   | j                   j                  d       | j                   j                  dd       | j                   j                  d       | j                   j	                  dd       | j                  dd       | j                  d       | j                  d       | j                  d       | j                  d       | j                  t        j                        5  | j                   j	                  dd	       d d d        | j                  t        j                        5  | j                   j	                  d
dd       d d d        | j                  t        j                        5  | j                   j	                  dd       d d d        y # 1 sw Y   xY w# 1 sw Y   ZxY w# 1 sw Y   y xY w)Nrk  rl  rm  r   r   rn  ro  rN   r   r   r   Trp  )r   r   r  rj   movedirrF   r7   r.   rI   r	   rr   r   r   s    r   test_movedirzFSTestCases.test_movedir'  sX   *+.8	6**G4.)y)3401 v667 	-GGOOE8,	- v667 	8GGOOFE$O7	8 v778 	?GGOO-~>	? 	?	- 	-	8 	8	? 	?s$   $F(F .F,F F),F5c                    | j                  | j                  j                  dgd             | j                  | j                  j                  dgd      | j                  j	                         j                  dd             y )Nr  r  zFOO.PYcase_insensitiveF)r&   r   matchr<   rb   r   r   s    r   
test_matchzFSTestCases.test_match>  s]    vh9:GGMM6(H-GGOO!!"4e<	
r   c                    | j                   j                  d       | j                   j                  d       t        j                         }| j                   j                  |       |j                         }d}| j                  ||       y )Nr   r^  )r   z!|-- foo
|   `-- bar
`-- test.txt
)r   r   ri   r   StringIOr@  r  r<   )r   
write_treewrittenr  s       r   	test_treezFSTestCases.test_treeE  sd    #z"[[]
*%%%'97+r   c                    | j                   j                         j                  dd      st        j                  d      | j                   j                  d       | j                   j                  dd       | j                   j                  dd       | j                  d       | j                  d	g| j                   j                  d             | j                  d	| j                   j                  d      j                         | j                  dd       | j                  dd       | j                   j                  d      rG| j!                  t"        j$                  j'                  | j                   j)                  d                   | j                   j+                  d       | j-                  d       | j                   j/                  d       | j-                  d       y )
Nunicode_pathsFz.the filesystem does not support unicode paths.u   földéru   ☭.txtzSmells like communism.u   földér/☣.txts   Smells like an old syringe.u   ☣.txt)r   rb   r   unittestSkipTestrj   r  r|   r7   r<   r   r   r   rF   r@   r   r&   r   r)   r'   r   r   r.   r_  r   s    r   test_unicode_pathzFSTestCases.test_unicode_pathN  sZ   ww $$_e<##$TUU
#)%=>-/MN*%)dggooj&ABDGGOO4F$G$L$LM$<=,.LM7701OOBGGNN477+=+=>P+QRS)*12*%z*r   c                 H   | j                   j                         }d|vrt        j                  d      |j	                  dd      rt        j                  d      | j                   j                  d       | j                   j                  d       | j                   j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       y )	Nrw  zcase sensitivity not knownFz%the filesystem is not case sensitive.rN   FoofOOFoO)r   rb   r  r  r   rj   rp   r*   r.   r7   r4   )r   rd   s     r   test_case_sensitivezFSTestCases.test_case_sensitived  s    ww T)##$@AA88&.##$KLLe5!5!5!u%% % 5!r   c                 l    | j                  | j                  j                  t        j                         y r!   )r=   r   r
   BoundGlobberr   s    r   	test_globzFSTestCases.test_globy  s     dggllD,=,=>r   c                    | j                   j                  d      j                  dddz         | j                  | j                   j	                  dd      d       | j                  t        j                        5  | j                   j	                  dd       d d d        | j                   j                  d      5 }| j                  |j	                  dd      d       d d d        y # 1 sw Y   PxY w# 1 sw Y   y xY w)	NrN   z
hashme.txts   foobarr   zfoo/hashme.txtmd5 9fff4bb103ab8ce4619064109c54cb9cnohash)	r   rj   r|   r<   hashrI   r	   UnsupportedHashrP  rR  s     r   	test_hashzFSTestCases.test_hash|  s    )),	D8HIGGLL)513U	
 v556 	5GGLL)84	5 WW__U# 	vL%02T	 		5 	5	 	s   :C&:#C2&C/2C;N)h__name__
__module____qualname____doc__r  r  r  r  r   r   r"   r$   r*   r.   r1   r4   r7   r@   rF   rL   rS   rY   r]   rf   rk   rn   rs   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r@  rE  rG  rL  rT  r[  ra  rj  rl  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r  r+  r1  r7  rD  rG  rK  rN  rU  rW  rZ  r\  rb  rd  rg  ri  rr  ru  ry  r~  r  r  r  r  r  r   r   r   r      s.   4Et#Et#Et#E2!.//.-+/!,*E
"0/",,	(?'
2<|$,L-'^,)\ +D4*
.63p@3Dd"L:,x5;&,P3<)2)8#8+*	W0
(*8LL4( "77r8t%"4<1	6:3'	5*(*T8t
B@!
FD,
-

$D ,-
IC '(J"?.
,+,"*?r   r   )&r  
__future__r   r   r   r  r   r   r\   rr  r  r(  r   r   fs.copyr   fs.mover   r   r	   r
   r   	fs.openerr   fs.subfsr   r   PY2collectionsr  collections.abcr!  r   ImportError	_tzcompatr  objectr   r  r   r   <module>r     s    9 	   	 
        5 5  (77)-$!
M`Q& Qi  $#$s   3B BB