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>
42 <project name="server:mail"/>
43 <project name="frox"/>
44 <project name="home:cthiel1"/>
45 <project name="server:php"/>
46 <project name="Apache"/>
47 <project name="server:httpd-trunk"/>
48 <project name="server:isc-dhcp"/>
49 <project name="Subversion"/>
50 <project name="Tidy"/>
51 <project name="validators"/>
58 self.out, self.err = runosc('id poeml')
59 self.assertEqual(self.err, '')
60 self.assertEqual(self.out, expect)
63 #####################################################################
66 self.out, self.err = runosc('ls')
67 self.assertEqual(self.err, '')
68 self.assert_('Apache' in self.out)
69 self.assert_(PRJ in self.out)
73 self.out, self.err = runosc('ls Apache')
74 self.assertEqual(self.err, '')
75 self.assert_('apache2' in self.out)
79 self.out, self.err = runosc('ls Apache apache2')
80 self.assertEqual(self.err, '')
81 self.assert_('favicon.ico' in self.out)
83 #####################################################################
85 def testMetaPrj(self):
86 self.out, self.err = runosc('meta Apache')
87 self.assertEqual(self.err, '')
88 self.assert_('<project name="Apache">' in self.out)
91 def testMetaPac(self):
92 self.out, self.err = runosc('meta Apache apache2')
93 self.assertEqual(self.err, '')
94 self.assert_('<package name="apache2">' in self.out)
97 #####################################################################
99 def testPlatforms(self):
100 self.out, self.err = runosc('platforms')
101 self.assertEqual(self.err, '')
102 self.assert_('Factory/standard' in self.out)
103 self.assert_('SUSE:SL-10.1/standard' in self.out)
106 def testPlatformsPac(self):
107 self.out, self.err = runosc('platforms Apache')
108 self.assertEqual(self.err, '')
109 self.assert_('SUSE_Linux_Factory' in self.out)
112 #####################################################################
116 self.out, self.err = runosc('co %s' % PRJ)
117 self.assertEqual(self.err, '')
118 self.assert_('A %s/%s' %(PRJ, PAC) in self.out)
122 # check out package dir
124 self.out, self.err = runosc('co %s %s' % (PRJ, PAC))
125 self.assertEqual(self.err, '')
126 self.assert_('A %s/%s' %(PRJ, PAC) in self.out)
128 # work in the package dir
132 # delete all existing files
133 self.upstream_files, err = runosc('ls %s %s' %(PRJ, PAC))
134 self.upstream_files = self.upstream_files.strip().split('\n')
135 if self.upstream_files != ['']:
136 for file in self.upstream_files:
137 self.out, self.err = runosc('rm %s' % file)
138 self.assertEqual(self.err, '')
139 self.assert_('D %s' % file in self.out)
140 self.out, self.err = runosc('ci')
144 # give an error if it doesn't exist
145 self.out, self.err = runosc('add foo1')
146 self.assertEqual(self.err, '')
147 self.assertEqual(self.out, 'file \'foo1\' does not exist\n')
150 self.out, self.err = runosc('add foo1')
151 self.assertEqual(self.err, '')
152 self.assertEqual(self.out, 'A foo1\n')
154 self.out, self.err = runosc('ci')
155 self.assertEqual(self.err, '')
156 self.assertEqual(self.out, """Sending foo1
157 Transmitting file data .
162 self.out, self.err = runosc('rm foo1')
163 self.assertEqual(self.err, '')
164 self.assertEqual(self.out, 'D foo1\n')
166 self.out, self.err = runosc('ci')
167 self.assertEqual(self.err, '')
168 self.assertEqual(self.out, """Deleting foo1
169 Transmitting file data
175 self.out, self.err = runosc('st')
176 self.assertEqual(self.err, '')
177 self.assertEqual(self.out, '? onlyinwc\n')
180 self.out, self.err = runosc('add foo2')
181 self.out, self.err = runosc('st')
182 self.assertEqual(self.err, '')
183 self.assertEqual(self.out, '? onlyinwc\nA foo2\n')
185 # status with directory as argument
186 self.out, self.err = runosc('st %s' % os.getcwd())
187 self.assertEqual(self.err, '')
188 self.assertEqual(self.out, '? onlyinwc\nA foo2\n')
190 # check in a single argument
191 self.out, self.err = runosc('ci foo2')
192 self.assertEqual(self.err, '')
193 self.assertEqual(self.out, """Sending foo2
194 Transmitting file data .
198 self.out, self.err = runosc('st')
199 self.assertEqual(self.err, '')
200 self.assertEqual(self.out, '? onlyinwc\n')
201 os.unlink('onlyinwc')
207 self.out, self.err = runosc('addremove')
208 self.assertEqual(self.err, '')
209 self.assertEqual(self.out, 'D foo2\nA bar1\n')
210 self.out, self.err = runosc('ci')
211 self.assertEqual(self.err, '')
212 self.assertEqual(self.out, """Sending bar1
214 Transmitting file data .
224 #####################################################################
227 def runosc(argstring):
228 time.sleep(1) # don't stress the server
229 return runcmd(os.path.join(oldpwd, 'osc-wrapper.py'), argstring)
232 def runcmd(cmd, argstring):
233 child_stdin, child_stdout, child_stderr = os.popen3(cmd + ' ' + argstring)
234 return child_stdout.read(), child_stderr.read()
238 open(filename, 'w').close();
241 if __name__ == '__main__':
247 suite = unittest.makeSuite(TestOsc)
248 unittest.TextTestRunner(verbosity=2).run(suite)