81 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """ CLI tests for gramps """
 | |
| 
 | |
| import os
 | |
| import unittest
 | |
| import re
 | |
| 
 | |
| from test import test_util as tu
 | |
| 
 | |
| pdir = tu.path_append_parent()
 | |
| ddir = tu.make_subdir( "cli_test_data")
 | |
| 
 | |
| test_ged = """0 HEAD
 | |
| 1 SOUR min1r.ged min 1-rec
 | |
| 1 SUBM @SUBM1@
 | |
| 1 GEDC
 | |
| 2 VERS 5.5
 | |
| 2 FORM LINEAGE-LINKED
 | |
| 1 CHAR ASCII
 | |
| 0 @I1@ INDI
 | |
| 0 TRLR
 | |
| """
 | |
| min1r = os.path.join(ddir,"min1r.ged")
 | |
| out_ged = os.path.join(ddir,"test_out.ged")
 | |
| 
 | |
| 
 | |
| class Test(unittest.TestCase):
 | |
|     def setUp(s):
 | |
|         if not os.path.exists(min1r):
 | |
|             open(min1r,"wb").write(test_ged)
 | |
|         if os.path.exists(out_ged):
 | |
|             os.remove(out_ged)
 | |
| 
 | |
|     # silly test just to illustrate unittest setUp behavior
 | |
|     def test1_setup_works(s):
 | |
|         s.assertTrue(os.path.exists(ddir), "data dir %r exists" % ddir)
 | |
|         s.assertTrue(os.path.exists(min1r), "data file %r exists" % min1r)
 | |
|         s.assertFalse(os.path.exists(out_ged), 
 | |
|             "NO out file %r yet" % out_ged)
 | |
|  
 | |
|     # This tests the fix for bug #1331-1334
 | |
|     # read trivial gedcom input, write gedcom output
 | |
|     def test2_exec_CLI(s):
 | |
|         ifile = min1r
 | |
|         ofile = out_ged
 | |
|         gcmd = "./gramps.py -i%s -o%s" % (ifile, ofile)
 | |
|         rc = os.system("cd %s &&  python %s" % (pdir, gcmd)) 
 | |
|         s.assertEquals(rc,0, tu.msg(rc,0, "executed CLI cmmand %r" % gcmd))
 | |
|         # simple validation o output
 | |
|         s.assertTrue(os.path.isfile(ofile), "output file created")
 | |
|         content = open(ofile).read()
 | |
|         g = re.search("INDI", content)
 | |
|         s.assertTrue(g, "found 'INDI' in output file")
 | |
| 
 | |
|     # this verifies that files in the "import dir" 
 | |
|     # get cleaned before (and after) running a CLI
 | |
|     # (eg cleanout stale files from prior crash-runs)
 | |
|     def test3_files_in_import_dir(s):
 | |
|         import const
 | |
|         idir = os.path.join(const.HOME_DIR,"import")
 | |
|         ddir = os.path.join(idir, "import_db.grdb")
 | |
|         bogofiles = [os.path.join(ddir,fn) 
 | |
|             for fn in ("family.db", "lock")]
 | |
|         for fn in bogofiles:
 | |
|             f = open(fn, "w").write("garbage")
 | |
|         
 | |
|         # ~same as test 2
 | |
|         ifile = min1r
 | |
|         ofile = out_ged
 | |
|         gcmd = "./gramps.py -i%s -o%s" % (ifile, ofile)
 | |
|         rc = os.system("cd %s &&  python %s" % (pdir, gcmd)) 
 | |
|         s.assertEquals(rc,0, tu.msg(rc,0, "executed CLI cmmand %r" % gcmd))
 | |
| 
 | |
|         for fn in bogofiles:
 | |
|             s.assertFalse(os.path.exists(fn))
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     unittest.main()
 | |
| 
 | |
| #===eof===
 |