소스 검색

v.db.select: added testsuite

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@67564 15284696-431f-4ddb-bdfa-cd5b030d7da7
Luca Delucchi 9 년 전
부모
커밋
bf47df1c57
1개의 변경된 파일218개의 추가작업 그리고 0개의 파일을 삭제
  1. 218 0
      vector/v.db.select/testsuite/test_v_db_select.py

+ 218 - 0
vector/v.db.select/testsuite/test_v_db_select.py

@@ -0,0 +1,218 @@
+"""
+Name:      vdbselect_test
+Purpose:   v.db.select decimation test
+
+Author:    Luca Delucchi
+Copyright: (C) 2015 by Luca Delucchi and the GRASS Development Team
+Licence:   This program is free software under the GNU General Public
+           License (>=v2). Read the file COPYING that comes with GRASS
+           for details.
+"""
+
+import os
+from grass.gunittest.case import TestCase
+from grass.gunittest.main import test
+from grass.gunittest.gmodules import SimpleModule
+
+out_group = """CZab
+CZam
+CZba
+CZbb
+CZbf
+CZbg
+CZbl
+CZc
+CZfg
+CZfv
+CZfv1
+CZfv2
+CZg
+CZgms
+CZig
+CZiv
+CZlg
+CZma
+CZma1
+CZma2
+CZmd
+CZmd1
+CZmd2
+CZmd3
+CZmg
+CZms
+CZmv
+CZmv1
+CZpg
+CZph
+CZq
+CZtp
+CZv
+CZve
+CZy
+Ccl
+Ccu
+Chg
+Cr
+Cs
+DOg
+DOgb
+DSc
+DSg
+DSs
+Dqd
+Dsc
+Jd
+Kb
+Kc
+Km
+Kp
+Mc
+OCg
+OCgm
+Org
+PPg
+PPgb
+PPmg
+PzZg
+PzZm
+PzZq
+PzZu
+Qp
+SOgg
+Sg
+TRc
+TRcc
+TRcp
+TRcs
+TRd
+TRdc
+TRdp
+TRds
+Tec
+Tecs
+Tob
+Tor
+Tp
+Tpa
+Tpy
+Tpyw
+Tt
+Ybam
+Ybgg
+Ybrg
+Yg
+Ygg
+Ymam
+Ymg
+Ytg
+ZYbA
+ZYba
+ZYbn
+Za
+Zaba
+Zabg
+Zabs
+Zata
+Zatb
+Zatm
+Zats
+Zatw
+Zb
+Zbg
+Zbt
+Zch
+Zchs
+Zco
+Zd
+Zf
+Zg
+Zgma
+Zgmf
+Zgmg
+Zgms
+Zgmu
+Zgmw
+Zgs
+Zhha
+Zlm
+Zm
+Zman
+Zmb
+Zmf
+Zml
+Znt
+Zrb
+Zs
+Zsl
+Zsp
+Zsr
+Zss
+Zsw
+Zwc
+Zwe
+bz
+"""
+
+out_where = """1076|366545504|324050.96875|1077|1076|Zwe|366545512.376|324050.97237
+1123|1288.555298|254.393951|1124|1123|Zwe|1288.546525|254.393964
+1290|63600420|109186.835938|1291|1290|Zwe|63600422.4739|109186.832069
+"""
+
+out_sep = """1076,366545504,324050.96875,1077,1076,Zwe,366545512.376,324050.97237
+1123,1288.555298,254.393951,1124,1123,Zwe,1288.546525,254.393964
+1290,63600420,109186.835938,1291,1290,Zwe,63600422.4739,109186.832069
+"""
+
+
+class SelectTest(TestCase):
+    """Test case for v.db.select"""
+
+    outfile = 'select.csv'
+    invect = 'geology'
+    col = 'GEO_NAME'
+    val = 'Zwe'
+
+    def testRun(self):
+        """Basic test of v.db.select"""
+        self.assertModule('v.db.select', map=self.invect)
+
+    def testFileExists(self):
+        """This function checks if the output file is written correctly"""
+        self.runModule('v.db.select', map=self.invect, file=self.outfile)
+        self.assertFileExists(self.outfile)
+        if os.path.isfile(self.outfile):
+            os.remove(self.outfile)
+
+    def testGroup(self):
+        """Testing v.db.select with group option"""
+        sel = SimpleModule('v.db.select', flags='c', map=self.invect,
+                           columns=self.col, group=self.col)
+        sel.run()
+        self.assertLooksLike(reference=out_group, actual=sel.outputs.stdout)
+
+    def testWhere(self):
+        """Testing v.db.select with where option"""
+        sel = SimpleModule('v.db.select', flags='c', map=self.invect,
+                           where="{col}='{val}'".format(col=self.col,
+                                                        val=self.val))
+        sel.run()
+        self.assertLooksLike(reference=out_where, actual=sel.outputs.stdout)
+
+    def testSeparator(self):
+        sel = SimpleModule('v.db.select', flags='c', map=self.invect,
+                           where="{col}='{val}'".format(col=self.col,
+                                                        val=self.val),
+                           separator='comma')
+        sel.run()
+        self.assertLooksLike(reference=out_sep, actual=sel.outputs.stdout)
+
+    def testComma(self):
+        sel = SimpleModule('v.db.select', flags='c', map=self.invect,
+                           where="{col}='{val}'".format(col=self.col,
+                                                        val=self.val),
+                           separator=',')
+        sel.run()
+        self.assertLooksLike(reference=out_sep, actual=sel.outputs.stdout)
+
+if __name__ == '__main__':
+    test()