Coverage for cogapp/test_makefiles.py : 23.38%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1""" Test the cogapp.makefiles modules
2 http://nedbatchelder.com/code/cog
4 Copyright 2004-2019, Ned Batchelder.
5"""
7from __future__ import absolute_import
9import shutil
10import os
11import random
12import tempfile
14from . import makefiles
15from .backward import TestCase
18class SimpleTests(TestCase):
20 def setUp(self):
21 # Create a temporary directory.
22 my_dir = 'testmakefiles_tempdir_' + str(random.random())[2:]
23 self.tempdir = os.path.join(tempfile.gettempdir(), my_dir)
24 os.mkdir(self.tempdir)
26 def tearDown(self):
27 # Get rid of the temporary directory.
28 shutil.rmtree(self.tempdir)
30 def exists(self, dname, fname):
31 return os.path.exists(os.path.join(dname, fname))
33 def checkFilesExist(self, d, dname):
34 for fname in d.keys():
35 assert(self.exists(dname, fname))
36 if type(d[fname]) == type({}):
37 self.checkFilesExist(d[fname], os.path.join(dname, fname))
39 def checkFilesDontExist(self, d, dname):
40 for fname in d.keys():
41 assert(not self.exists(dname, fname))
43 def testOneFile(self):
44 fname = 'foo.txt'
45 notfname = 'not_here.txt'
46 d = { fname: "howdy" }
47 assert(not self.exists(self.tempdir, fname))
48 assert(not self.exists(self.tempdir, notfname))
50 makefiles.makeFiles(d, self.tempdir)
51 assert(self.exists(self.tempdir, fname))
52 assert(not self.exists(self.tempdir, notfname))
54 makefiles.removeFiles(d, self.tempdir)
55 assert(not self.exists(self.tempdir, fname))
56 assert(not self.exists(self.tempdir, notfname))
58 def testManyFiles(self):
59 d = {
60 'top1.txt': "howdy",
61 'top2.txt': "hello",
62 'sub': {
63 'sub1.txt': "inside",
64 'sub2.txt': "inside2",
65 },
66 }
68 self.checkFilesDontExist(d, self.tempdir)
69 makefiles.makeFiles(d, self.tempdir)
70 self.checkFilesExist(d, self.tempdir)
71 makefiles.removeFiles(d, self.tempdir)
72 self.checkFilesDontExist(d, self.tempdir)
74 def testOverlapping(self):
75 d1 = {
76 'top1.txt': "howdy",
77 'sub': {
78 'sub1.txt': "inside",
79 },
80 }
82 d2 = {
83 'top2.txt': "hello",
84 'sub': {
85 'sub2.txt': "inside2",
86 },
87 }
89 self.checkFilesDontExist(d1, self.tempdir)
90 self.checkFilesDontExist(d2, self.tempdir)
91 makefiles.makeFiles(d1, self.tempdir)
92 makefiles.makeFiles(d2, self.tempdir)
93 self.checkFilesExist(d1, self.tempdir)
94 self.checkFilesExist(d2, self.tempdir)
95 makefiles.removeFiles(d1, self.tempdir)
96 makefiles.removeFiles(d2, self.tempdir)
97 self.checkFilesDontExist(d1, self.tempdir)
98 self.checkFilesDontExist(d2, self.tempdir)
100 def testContents(self):
101 fname = 'bar.txt'
102 cont0 = "I am bar.txt"
103 d = { fname: cont0 }
104 makefiles.makeFiles(d, self.tempdir)
105 fcont1 = open(os.path.join(self.tempdir, fname))
106 assert(fcont1.read() == cont0)
107 fcont1.close()
109 def testDedent(self):
110 fname = 'dedent.txt'
111 d = {
112 fname: """\
113 This is dedent.txt
114 \tTabbed in.
115 spaced in.
116 OK.
117 """,
118 }
119 makefiles.makeFiles(d, self.tempdir)
120 fcont = open(os.path.join(self.tempdir, fname))
121 assert(fcont.read() == "This is dedent.txt\n\tTabbed in.\n spaced in.\nOK.\n")
122 fcont.close()