this should handle bite sized task number 441.
* build.conf
(fs-test-scripts): add entry for stat_tests.py
* subversion/tests/cmdline/diff_tests.py
(diff_non_version_controlled_file): a test for issue 439.
* subversion/tests/cmdline/stat_tests.py
new file for tests related to 'svn stat'.
(stat_unversioned_file_in_current_dir): a test for issue 440.
Index: ./build.conf
===================================================================
--- ./.svn/text-base/build.conf.svn-base Sat Jan 5 11:03:57 2002
+++ ./build.conf Sat Jan 5 17:19:33 2002
@@ -48,9 +48,10 @@
subversion/tests/clients/cmdline/copy_tests.py
# Python: 'svn diff -r' tests
subversion/tests/clients/cmdline/diff_tests.py
+# Python: 'svn stat' tests
+ subversion/tests/clients/cmdline/stat_tests.py
# Python: 'svnadmin' tests
subversion/tests/clients/cmdline/svnadmin_tests.py
-
# ----------------------------------------------------------------------------
#
Index: ./subversion/tests/clients/cmdline/diff_tests.py
===================================================================
--- ./subversion/tests/clients/cmdline/.svn/text-base/diff_tests.py.svn-base Sat Jan 5 11:05:23 2002
+++ ./subversion/tests/clients/cmdline/diff_tests.py Sat Jan 5 17:22:19 2002
@@ -371,6 +371,31 @@
return 0
+# test 7
+def diff_non_version_controlled_file():
+ "non version controlled files"
+
+ sbox = sandbox(diff_non_version_controlled_file)
+ wc_dir = os.path.join(svntest.main.general_wc_dir, sbox)
+ if svntest.actions.make_repo_and_wc(sbox): return 1
+
+ svntest.main.file_append(os.path.join(wc_dir, 'A', 'D', 'foo'), "a new file")
+
+ diff_output, err_output = svntest.main.run_svn(1, 'diff',
+ os.path.join(wc_dir,
+ 'A', 'D', 'foo'))
+
+ if count_diff_output(diff_output) != 0: return 1
+
+ # At one point this would crash, so we would only get a 'Segmentation Fault'
+ # error message. The appropriate response is a few lines of errors. I wish
+ # there was a way to figure out if svn crashed, but all run_svn gives us is
+ # the output, so here we are...
+ if len(err_output) <= 1: return 1
+
+ return 0
+
+
########################################################################
# Run the tests
@@ -382,7 +407,8 @@
diff_add_a_file_in_a_subdir,
diff_replace_a_file,
diff_two_add_reverse,
- diff_non_recursive
+ diff_non_recursive,
+ diff_non_version_controlled_file,
]
if __name__ == '__main__':
Index: ./subversion/tests/clients/cmdline/stat_tests.py
===================================================================
--- /dev/null Sat Jan 5 17:26:47 2002
+++ subversion/tests/clients/cmdline/stat_tests.py Sat Jan 5 17:27:08 2002
@@ -0,0 +1,101 @@
+#!/usr/bin/env python
+#
+# stat_tests.py: testing the svn stat command
+#
+# Subversion is a tool for revision control.
+# See http://subversion.tigris.org for more information.
+#
+# ====================================================================
+# Copyright (c) 2000-2001 CollabNet. All rights reserved.
+#
+# This software is licensed as described in the file COPYING, which
+# you should have received as part of this distribution. The terms
+# are also available at http://subversion.tigris.org/license-1.html.
+# If newer versions of this license are posted there, you may use a
+# newer version instead, at your option.
+#
+######################################################################
+
+# General modules
+import shutil, string, sys, re, os.path, traceback
+
+# The `svntest' module
+try:
+ import svntest
+except SyntaxError:
+ sys.stderr.write('[SKIPPED] ')
+ print "<<< Please make sure you have Python 2 or better! >>>"
+ traceback.print_exc(None,sys.stdout)
+ raise SystemExit
+
+
+# Quick macro for auto-generating sandbox names
+def sandbox(x):
+ return "basic_tests-" + `test_list.index(x)`
+
+# (abbreviation)
+path_index = svntest.actions.path_index
+
+
+######################################################################
+# Tests
+#
+# Each test must return 0 on success or non-zero on failure.
+
+#----------------------------------------------------------------------
+
+def stat_unversioned_file_in_current_dir():
+ "stat an unversioned file in the current directory"
+
+ sbox = sandbox(stat_unversioned_file_in_current_dir)
+ wc_dir = os.path.join(svntest.main.general_wc_dir, sbox)
+ if svntest.actions.make_repo_and_wc(sbox): return 1
+
+ was_cwd = os.getcwd()
+ os.chdir(wc_dir)
+
+ svntest.main.file_append('foo', 'a new file')
+
+ stat_output, err_output = svntest.main.run_svn(None, 'stat', 'foo')
+
+ if len(stat_output) != 1:
+ os.chdir(was_cwd)
+ return 1
+
+ if len(err_output) != 0:
+ os.chdir(was_cwd)
+ return 1
+
+ os.chdir(was_cwd)
+ return 0
+
+#----------------------------------------------------------------------
+
+
+########################################################################
+# Run the tests
+
+
+# list all tests here, starting with None:
+test_list = [ None,
+ stat_unversioned_file_in_current_dir,
+ ]
+
+if __name__ == '__main__':
+
+ ## run the main test routine on them:
+ err = svntest.main.run_tests(test_list)
+
+ ## remove all scratchwork: the 'pristine' repository, greek tree, etc.
+ ## This ensures that an 'import' will happen the next time we run.
+ if os.path.exists(svntest.main.temp_dir):
+ shutil.rmtree(svntest.main.temp_dir)
+
+ ## return whatever main() returned to the OS.
+ sys.exit(err)
+
+
+### End of file.
+# local variables:
+# eval: (load-file "../../../svn-dev.el")
+# end:
--
garrett rooney Unix was not designed to stop you from
rooneg@electricjellyfish.net doing stupid things, because that would
http://electricjellyfish.net/ stop you from doing clever things.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Oct 21 14:36:54 2006