1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
"""Test the cogapp.makefiles modules"""
import shutil
import os
import random
import tempfile
from unittest import TestCase
from . import makefiles
class SimpleTests(TestCase):
def setUp(self):
# Create a temporary directory.
my_dir = "testmakefiles_tempdir_" + str(random.random())[2:]
self.tempdir = os.path.join(tempfile.gettempdir(), my_dir)
os.mkdir(self.tempdir)
def tearDown(self):
# Get rid of the temporary directory.
shutil.rmtree(self.tempdir)
def exists(self, dname, fname):
return os.path.exists(os.path.join(dname, fname))
def check_files_exist(self, d, dname):
for fname in d.keys():
assert self.exists(dname, fname)
if isinstance(d[fname], dict):
self.check_files_exist(d[fname], os.path.join(dname, fname))
def check_files_dont_exist(self, d, dname):
for fname in d.keys():
assert not self.exists(dname, fname)
def test_one_file(self):
fname = "foo.txt"
notfname = "not_here.txt"
d = {fname: "howdy"}
assert not self.exists(self.tempdir, fname)
assert not self.exists(self.tempdir, notfname)
makefiles.make_files(d, self.tempdir)
assert self.exists(self.tempdir, fname)
assert not self.exists(self.tempdir, notfname)
makefiles.remove_files(d, self.tempdir)
assert not self.exists(self.tempdir, fname)
assert not self.exists(self.tempdir, notfname)
def test_many_files(self):
d = {
"top1.txt": "howdy",
"top2.txt": "hello",
"sub": {
"sub1.txt": "inside",
"sub2.txt": "inside2",
},
}
self.check_files_dont_exist(d, self.tempdir)
makefiles.make_files(d, self.tempdir)
self.check_files_exist(d, self.tempdir)
makefiles.remove_files(d, self.tempdir)
self.check_files_dont_exist(d, self.tempdir)
def test_overlapping(self):
d1 = {
"top1.txt": "howdy",
"sub": {
"sub1.txt": "inside",
},
}
d2 = {
"top2.txt": "hello",
"sub": {
"sub2.txt": "inside2",
},
}
self.check_files_dont_exist(d1, self.tempdir)
self.check_files_dont_exist(d2, self.tempdir)
makefiles.make_files(d1, self.tempdir)
makefiles.make_files(d2, self.tempdir)
self.check_files_exist(d1, self.tempdir)
self.check_files_exist(d2, self.tempdir)
makefiles.remove_files(d1, self.tempdir)
makefiles.remove_files(d2, self.tempdir)
self.check_files_dont_exist(d1, self.tempdir)
self.check_files_dont_exist(d2, self.tempdir)
def test_contents(self):
fname = "bar.txt"
cont0 = "I am bar.txt"
d = {fname: cont0}
makefiles.make_files(d, self.tempdir)
with open(os.path.join(self.tempdir, fname)) as fcont1:
assert fcont1.read() == cont0
def test_dedent(self):
fname = "dedent.txt"
d = {
fname: """\
This is dedent.txt
\tTabbed in.
spaced in.
OK.
""",
}
makefiles.make_files(d, self.tempdir)
with open(os.path.join(self.tempdir, fname)) as fcont:
assert (
fcont.read() == "This is dedent.txt\n\tTabbed in.\n spaced in.\nOK.\n"
)
|