7 from osc import commandline
11 testpacdir = os.path.join(PRJ, PAC)
14 class TestOsc(unittest.TestCase):
19 shutil.rmtree(self.wd, ignore_errors=True)
25 #####################################################################
27 def testUsermeta(self):
30 <email>poeml@suse.de</email>
31 <realname>Dr. Peter Poeml</realname>
41 <project name="server:mail"/>
42 <project name="frox"/>
43 <project name="home:cthiel1"/>
44 <project name="server:php"/>
45 <project name="Apache"/>
46 <project name="server:httpd-trunk"/>
47 <project name="server:isc-dhcp"/>
48 <project name="Subversion"/>
49 <project name="Tidy"/>
50 <project name="validators"/>
52 <project name="home:poeml"/>
53 <project name="Apache:Modules"/>
59 self.out, self.err = runosc('usermeta poeml')
60 self.assertEqual(self.err, '')
61 self.assertEqual(self.out, expect)
64 #####################################################################
67 self.out, self.err = runosc('ls')
68 self.assertEqual(self.err, '')
69 self.assert_('Apache' in self.out)
70 self.assert_(PRJ in self.out)
74 self.out, self.err = runosc('ls Apache')
75 self.assertEqual(self.err, '')
76 self.assert_('apache2' in self.out)
80 self.out, self.err = runosc('ls Apache apache2')
81 self.assertEqual(self.err, '')
82 self.assert_('favicon.ico' in self.out)
84 #####################################################################
86 def testMetaPrj(self):
87 self.out, self.err = runosc('meta Apache')
88 self.assertEqual(self.err, '')
89 self.assert_('<project name="Apache">' in self.out)
92 def testMetaPac(self):
93 self.out, self.err = runosc('meta Apache apache2')
94 self.assertEqual(self.err, '')
95 self.assert_('<package name="apache2" project="Apache">' in self.out)
98 #####################################################################
100 def testPlatforms(self):
101 self.out, self.err = runosc('platforms')
102 self.assertEqual(self.err, '')
103 self.assert_('Factory/standard' in self.out)
104 self.assert_('SUSE:SL-10.1/standard' in self.out)
107 def testPlatformsPac(self):
108 self.out, self.err = runosc('platforms Apache')
109 self.assertEqual(self.err, '')
110 self.assert_('openSUSE_Factory' in self.out)
113 #####################################################################
117 self.out, self.err = runosc('co %s' % PRJ)
118 self.assertEqual(self.err, '')
119 self.assert_('A %s/%s' %(PRJ, PAC) in self.out)
123 # check out package dir
125 self.out, self.err = runosc('co %s %s' % (PRJ, PAC))
126 self.assertEqual(self.err, '')
127 self.assert_('A %s/%s' %(PRJ, PAC) in self.out)
129 # work in the package dir
133 # delete all existing files
134 self.upstream_files, err = runosc('ls %s %s' %(PRJ, PAC))
135 self.upstream_files = self.upstream_files.strip().split('\n')
136 if self.upstream_files != ['']:
137 for file in self.upstream_files:
138 self.out, self.err = runosc('rm %s' % file)
139 self.assertEqual(self.err, '')
140 self.assert_('D %s' % file in self.out)
141 self.out, self.err = runosc('ci')
145 # give an error if it doesn't exist
146 self.out, self.err = runosc('add foo1')
147 self.assertEqual(self.err, '')
148 self.assertEqual(self.out, 'file \'foo1\' does not exist\n')
151 self.out, self.err = runosc('add foo1')
152 self.assertEqual(self.err, '')
153 self.assertEqual(self.out, 'A foo1\n')
155 self.out, self.err = runosc('ci')
156 self.assertEqual(self.err, '')
157 self.assertEqual(self.out, """Sending foo1
158 Transmitting file data .
163 self.out, self.err = runosc('rm foo1')
164 self.assertEqual(self.err, '')
165 self.assertEqual(self.out, 'D foo1\n')
167 self.out, self.err = runosc('ci')
168 self.assertEqual(self.err, '')
169 self.assertEqual(self.out, """Deleting foo1
170 Transmitting file data
176 self.out, self.err = runosc('st')
177 self.assertEqual(self.err, '')
178 self.assertEqual(self.out, '? onlyinwc\n')
181 self.out, self.err = runosc('add foo2')
182 self.out, self.err = runosc('st')
183 self.assertEqual(self.err, '')
184 self.assertEqual(self.out, '? onlyinwc\nA foo2\n')
186 # status with an absolute directory as argument
187 self.out, self.err = runosc('st %s' % os.getcwd())
188 self.assertEqual(self.err, '')
189 self.assertEqual(self.out, '? %s/onlyinwc\nA %s/foo2\n' % (os.getcwd(), os.getcwd()))
191 # status with an absolute directory as argument
192 self.out, self.err = runosc('st %s' % os.getcwd())
193 self.assertEqual(self.err, '')
194 self.assertEqual(self.out, '? %s/onlyinwc\nA %s/foo2\n' % (os.getcwd(), os.getcwd()))
196 # status with a single file as argument
197 reldir = os.path.basename(os.getcwd())
198 self.out, self.err = runosc('st foo2')
199 self.assertEqual(self.err, '')
200 self.assertEqual(self.out, 'A foo2\n')
202 # check in a single argument
203 self.out, self.err = runosc('ci foo2')
204 self.assertEqual(self.err, '')
205 self.assertEqual(self.out, """Sending foo2
206 Transmitting file data .
210 self.out, self.err = runosc('st')
211 self.assertEqual(self.err, '')
212 self.assertEqual(self.out, '? onlyinwc\n')
213 os.unlink('onlyinwc')
219 self.out, self.err = runosc('addremove')
220 self.assertEqual(self.err, '')
221 self.assertEqual(self.out, 'D foo2\nA bar1\n')
222 self.out, self.err = runosc('ci')
223 self.assertEqual(self.err, '')
224 self.assertEqual(self.out, """Sending bar1
226 Transmitting file data .
236 #####################################################################
239 def runosc(argstring):
240 time.sleep(1) # don't stress the server
241 return runcmd(os.path.join(oldpwd, 'osc-wrapper.py'), argstring)
244 def runcmd(cmd, argstring):
245 child_stdin, child_stdout, child_stderr = os.popen3(cmd + ' ' + argstring)
246 return child_stdout.read(), child_stderr.read()
250 open(filename, 'w').close();
253 if __name__ == '__main__':
257 suite = unittest.makeSuite(TestOsc)
258 unittest.TextTestRunner(verbosity=2).run(suite)