Adding tests

This commit is contained in:
Kevin K 2015-03-25 17:02:21 -04:00
parent eedfdcdac9
commit 0cce6b8715
5 changed files with 90 additions and 11 deletions

View file

@ -5,5 +5,5 @@ version = "0.0.1"
authors = ["Kevin K. <kbknapp@gmail.com>"] authors = ["Kevin K. <kbknapp@gmail.com>"]
[dependencies.clap] [dependencies.clap]
git = "file:/home/kevin/Projects/clap-rs" git = "$FORK"
branch = "extrabox" branch = "$BRANCH"

29
claptests/Makefile Normal file
View file

@ -0,0 +1,29 @@
THIS_MAKEFILE_PATH:=$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
THIS_DIR:=$(shell cd $(dir $(THIS_MAKEFILE_PATH));pwd)
build:
cargo update
cargo build --release
test:
cd "$(THIS_DIR)"
cp Cargo.toml cargo.bak
read -p "fork url: " FORK
read -p "branch [master]: " BRANCH
sed -e "s/\$FORK/$FORK" cargo.bak > Cargo.toml
if [ "$BRANCH" == "" ]; then
sed -i "s/\$BRANCH/master/" Cargo.toml
else
sed -i "s/\$BRNACH/$BRANCH/" Cargo.toml
fi
(make clean) || (make clean && false)
(make build) || (make clean && false)
./run_tests.py || (make clean && false)
echo "All tests pass!"
mv cargo.bak Cargo.toml
make clean
clean:
cd "$(THIS_DIR)"
cargo clean

21
claptests/good_help Normal file
View file

@ -0,0 +1,21 @@
claptests 0.0.1
Kevin K. <kbknapp@gmail.com>
tests clap library
USAGE:
claptests [FLAGS] [OPTIONS] [POSITIONAL] [SUBCOMMANDS]
FLAGS:
-f,--flag tests flags
-v,--version Prints version information
-h,--help Prints this message
OPTIONS:
-o ,--option=option tests options
POSITIONAL ARGUMENTS:
positional tests positionals
SUBCOMMANDS:
help Prints this message
subcmd tests subcommands

38
claptests/run_test.py Executable file
View file

@ -0,0 +1,38 @@
#!/usr/bin/env python
import sys
import subprocess
failed = False
def pass_fail(good, check):
print(good)
if check == good:
return "Pass"
failed = True
return "Fail"
def main():
cmd_help = [['./target/release/claptests', '-h'],
['./target/release/claptests', '--help'],
['./target/release/claptests', 'help']]
proc = subprocess.Popen(cmd_help[0], stdout=subprocess.PIPE)
proc.wait()
out = proc.communicate()[0].decode('utf-8')
print("Help Flag:")
print("\tshort: {}".format(pass_fail(GOOD_HELP_HASH, out)))
proc = subprocess.Popen(cmd_help[1], stdout=subprocess.PIPE)
proc.wait()
out = proc.communicate()[0].decode('utf-8')
print("\tlong: {}".format(pass_fail(GOOD_HELP_HASH, out)))
proc = subprocess.Popen(cmd_help[2], stdout=subprocess.PIPE)
proc.wait()
out = proc.communicate()[0].decode('utf-8')
print("\tlong: {}".format(pass_fail(GOOD_HELP_HASH, out)))
if failed:
return 1
if __name__ == '__main__':
sys.exit(main())

View file

@ -481,15 +481,6 @@ impl<'a, 'v, 'ab, 'u> App<'a, 'v, 'ab, 'u>{
if !pos_only { if !pos_only {
if let Some(nvo) = needs_val_of { if let Some(nvo) = needs_val_of {
if let Some(ref opt) = self.opts.get(nvo) { if let Some(ref opt) = self.opts.get(nvo) {
// if self.blacklist.contains(opt.name) {
// self.report_error(
// format!("The argument {} is mutually exclusive with one or more other arguments",
// if let Some(long) = opt.long {
// format!("--{}",long)
// }else{
// format!("-{}",opt.short.unwrap())
// }),true, true);
// }
if let Some(ref mut o) = matches.opts.get_mut(opt.name) { if let Some(ref mut o) = matches.opts.get_mut(opt.name) {
o.values.push(arg.clone()); o.values.push(arg.clone());
o.occurrences = if opt.multiple { o.occurrences + 1 } else { 1 }; o.occurrences = if opt.multiple { o.occurrences + 1 } else { 1 };