unittest yapımız...
Hazırladığınız modüller/fonksiyonlar için unittestleri de yazmayı ihmal etmeyiniz. samples/ altına testlerde de örnek olarak kullanacağımız dosyaları yerleştireceğiz. Bu dosyaların da (örneğin; spec dosyaları) güncel olmasına önem gösterelim...
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
|
||||
<!DOCTYPE PSPEC SYSTEM
|
||||
"http://www.uludag.org.tr/projeler/pisi/pisi-spec.dtd">
|
||||
|
||||
<PSPEC>
|
||||
|
||||
<Source>
|
||||
<Name>popt</Name>
|
||||
<Homepage>http://www.rpm.org/</Homepage>
|
||||
<Packager>
|
||||
<Name>Kirmizi kafalar</Name>
|
||||
<Email>hotmail@redhat.com</Email>
|
||||
</Packager>
|
||||
<License>As-Is</License>
|
||||
<Archive archType="targz" md5sum="5988e7aeb0ae4dac8d83561265984cc9">
|
||||
ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.1.x/popt-1.7.tar.gz
|
||||
</Archive>
|
||||
<Patches>
|
||||
<Patch compressionType="gz">popt-1.7-uclibc.patch.gz</Patch>
|
||||
</Patches>
|
||||
<BuildDependencies>
|
||||
<Dependency versionFrom="1.8"> make </Dependency>
|
||||
</BuildDependencies>
|
||||
<History>
|
||||
<Update>
|
||||
<Date>05/05/2005</Date>
|
||||
<Version>1.7</Version>
|
||||
<Release>1</Release>
|
||||
</Update>
|
||||
</History>
|
||||
</Source>
|
||||
|
||||
<Package>
|
||||
<Name>popt</Name>
|
||||
<Summary lang="en">Command line option parsing library</Summary>
|
||||
<Summary lang="tr">Komut satırı seçenekleri işleme kütüphanesi</Summary>
|
||||
<Description>Command line option parsing library.
|
||||
While it is similiar to getopt(3), it contains a number of enhancements, including:
|
||||
|
||||
1) popt is fully reentrant
|
||||
2) popt can parse arbitrary argv[] style arrays while
|
||||
getopt(2) makes this quite difficult
|
||||
3) popt allows users to alias command line arguments
|
||||
4) popt provides convience functions for parsing strings
|
||||
into argv[] style arrays
|
||||
</Description>
|
||||
<Category>devel:library</Category>
|
||||
<RuntimeDependencies>
|
||||
<Dependency>gettext</Dependency>
|
||||
</RuntimeDependencies>
|
||||
<Files>
|
||||
<Path fileType="sharedLib">/usr/lib</Path>
|
||||
<Path fileType="doc">/usr/share/doc</Path>
|
||||
<Path fileType="doc">/usr/share/man</Path>
|
||||
<Path fileType="localedata">/usr/share/locale</Path>
|
||||
<Path fileType="header">/usr/include/popt.h</Path>
|
||||
</Files>
|
||||
</Package>
|
||||
</PSPEC>
|
||||
@@ -0,0 +1,33 @@
|
||||
|
||||
import unittest
|
||||
from os.path import exists as pathexists
|
||||
|
||||
from pisi import archive
|
||||
from pisi import specfile
|
||||
from pisi import util
|
||||
|
||||
class ArchiveFileTestCase(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.spec = specfile.SpecFile()
|
||||
self.spec.read("samples/popt.pspec")
|
||||
|
||||
self.achv = archive.Archive(self.spec.source.archiveType,
|
||||
self.spec.source.archiveName)
|
||||
|
||||
def testUnpackTar(self):
|
||||
assert self.spec.source.archiveType == "targz"
|
||||
|
||||
# unpacking is trivial with Archive()
|
||||
self.achv.unpack()
|
||||
|
||||
# but testing is hard
|
||||
assert pathexists("popt-1.7")
|
||||
|
||||
testfile = "popt-1.7/Makefile.am"
|
||||
assert pathexists(testfile)
|
||||
|
||||
self.assertEqual(util.md5_file(testfile),
|
||||
"171545adab7b51ebf6ec5575d3000a95")
|
||||
|
||||
suite = unittest.makeSuite(ArchiveFileTestCase)
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
|
||||
import unittest
|
||||
import os
|
||||
|
||||
from pisi import fetcher
|
||||
from pisi import specfile
|
||||
from pisi import util
|
||||
|
||||
class FetcherTestCase(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.spec = specfile.SpecFile()
|
||||
self.spec.read("samples/popt.pspec")
|
||||
|
||||
self.fetch = fetcher.Fetcher(self.spec.source.archiveUri,
|
||||
self.spec.source.archiveName)
|
||||
|
||||
def testFetch(self):
|
||||
self.fetch.fetch()
|
||||
destpath = self.fetch.filedest + "/" + self.fetch.filename
|
||||
if os.access(destpath, os.R_OK):
|
||||
self.assertEqual(util.md5_file(destpath),
|
||||
self.spec.source.archiveMD5)
|
||||
|
||||
|
||||
suite = unittest.makeSuite(FetcherTestCase)
|
||||
Executable
+21
@@ -0,0 +1,21 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import unittest
|
||||
import sys
|
||||
sys.path.append(".")
|
||||
|
||||
import specfiletests
|
||||
import fetchertests
|
||||
import archivetests
|
||||
|
||||
def main():
|
||||
alltests = unittest.TestSuite((
|
||||
specfiletests.suite,
|
||||
fetchertests.suite,
|
||||
archivetests.suite
|
||||
))
|
||||
|
||||
unittest.TextTestRunner(verbosity=2).run(alltests)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
import unittest
|
||||
|
||||
from pisi import specfile
|
||||
|
||||
class SpecReadTestCase(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.spec = specfile.SpecFile()
|
||||
self.spec.read("samples/popt.pspec")
|
||||
|
||||
def testSourceName(self):
|
||||
self.assertEqual(self.spec.source.name,
|
||||
"popt")
|
||||
|
||||
def testMD5Sum(self):
|
||||
self.assertEqual(self.spec.source.archiveMD5,
|
||||
"5988e7aeb0ae4dac8d83561265984cc9")
|
||||
|
||||
def testLenPackages(self):
|
||||
self.assertEqual(len(self.spec.packages), 1)
|
||||
|
||||
|
||||
suite = unittest.makeSuite(SpecReadTestCase)
|
||||
Reference in New Issue
Block a user