7 from osc.core import init_basicauth
8 from osc import commandline
12 testpacdir = os.path.join(PRJ, PAC)
15 class TestOsc(unittest.TestCase):
20 shutil.rmtree(self.wd, ignore_errors=True)
26 #####################################################################
31 <email>poeml@suse.de</email>
32 <realname>Dr. Peter Peoml</realname>
45 self.out, self.err = runosc('id poeml')
46 self.assertEqual(self.err, '')
47 self.assertEqual(self.out, expect)
50 #####################################################################
53 self.out, self.err = runosc('ls')
54 self.assertEqual(self.err, '')
55 self.assert_('Apache' in self.out)
56 self.assert_(PRJ in self.out)
60 self.out, self.err = runosc('ls Apache')
61 self.assertEqual(self.err, '')
62 self.assert_('apache2' in self.out)
66 self.out, self.err = runosc('ls Apache apache2')
67 self.assertEqual(self.err, '')
68 self.assert_('favicon.ico' in self.out)
70 #####################################################################
72 def testMetaPrj(self):
73 self.out, self.err = runosc('meta Apache')
74 self.assertEqual(self.err, '')
75 self.assert_('<project name="Apache">' in self.out)
78 def testMetaPac(self):
79 self.out, self.err = runosc('meta Apache apache2')
80 self.assertEqual(self.err, '')
81 self.assert_('<package name="apache2">' in self.out)
84 #####################################################################
86 def testPlatforms(self):
87 self.out, self.err = runosc('platforms')
88 self.assertEqual(self.err, '')
89 self.assert_('Factory/standard' in self.out)
90 self.assert_('SUSE:SL-10.1/standard' in self.out)
93 def testPlatformsPac(self):
94 self.out, self.err = runosc('platforms Apache')
95 self.assertEqual(self.err, '')
96 self.assert_('SUSE_Linux_Factory' in self.out)
99 #####################################################################
103 self.out, self.err = runosc('co %s' % PRJ)
104 self.assertEqual(self.err, '')
105 self.assert_('A %s/%s' %(PRJ, PAC) in self.out)
109 # check out package dir
111 self.out, self.err = runosc('co %s %s' % (PRJ, PAC))
112 self.assertEqual(self.err, '')
113 self.assert_('A %s/%s' %(PRJ, PAC) in self.out)
115 # work in the package dir
119 # delete all existing files
120 self.upstream_files, err = runosc('ls %s %s' %(PRJ, PAC))
121 self.upstream_files = self.upstream_files.strip().split('\n')
122 if self.upstream_files != ['']:
123 for file in self.upstream_files:
124 self.out, self.err = runosc('rm %s' % file)
125 self.assertEqual(self.err, '')
126 self.assert_('D %s' % file in self.out)
127 self.out, self.err = runosc('ci')
131 # give an error if it doesn't exist
132 self.out, self.err = runosc('add foo1')
133 self.assertEqual(self.err, '')
134 self.assertEqual(self.out, 'file \'foo1\' does not exist\n')
137 self.out, self.err = runosc('add foo1')
138 self.assertEqual(self.err, '')
139 self.assertEqual(self.out, 'A foo1\n')
141 self.out, self.err = runosc('ci')
142 self.assertEqual(self.err, '')
143 self.assertEqual(self.out, """Sending foo1
144 Transmitting file data .
149 self.out, self.err = runosc('rm foo1')
150 self.assertEqual(self.err, '')
151 self.assertEqual(self.out, 'D foo1\n')
153 self.out, self.err = runosc('ci')
154 self.assertEqual(self.err, '')
155 self.assertEqual(self.out, """Deleting foo1
156 Transmitting file data
162 self.out, self.err = runosc('st')
163 self.assertEqual(self.err, '')
164 self.assertEqual(self.out, '? onlyinwc\n')
167 self.out, self.err = runosc('add foo2')
168 self.out, self.err = runosc('st')
169 self.assertEqual(self.err, '')
170 self.assertEqual(self.out, '? onlyinwc\nA foo2\n')
172 # status with directory as argument
173 self.out, self.err = runosc('st %s' % os.getcwd())
174 self.assertEqual(self.err, '')
175 self.assertEqual(self.out, '? onlyinwc\nA foo2\n')
177 # check in a single argument
178 self.out, self.err = runosc('ci foo2')
179 self.assertEqual(self.err, '')
180 self.assertEqual(self.out, """Sending foo2
181 Transmitting file data .
185 self.out, self.err = runosc('st')
186 self.assertEqual(self.err, '')
187 self.assertEqual(self.out, '? onlyinwc\n')
188 os.unlink('onlyinwc')
194 self.out, self.err = runosc('addremove')
195 self.assertEqual(self.err, '')
196 self.assertEqual(self.out, 'D foo2\nA bar1\n')
197 self.out, self.err = runosc('ci')
198 self.assertEqual(self.err, '')
199 self.assertEqual(self.out, """Sending bar1
201 Transmitting file data .
211 #####################################################################
214 def runosc(argstring):
215 time.sleep(1) # don't stress the server
216 return runcmd(os.path.join(oldpwd, 'osc-wrapper.py'), argstring)
219 def runcmd(cmd, argstring):
220 child_stdin, child_stdout, child_stderr = os.popen3(cmd + ' ' + argstring)
221 return child_stdout.read(), child_stderr.read()
225 open(filename, 'w').close();
228 if __name__ == '__main__':
234 suite = unittest.makeSuite(TestOsc)
235 unittest.TextTestRunner(verbosity=2).run(suite)