From 19c63111b674049aa2212eaf78c04855b13a4627 Mon Sep 17 00:00:00 2001 From: Marcus Huewe Date: Fri, 27 Aug 2010 16:25:50 +0200 Subject: [PATCH] - added testcases for the new "get_diff" method --- tests/difffile_fixtures/oscrc | 104 ++++++++ tests/difffile_fixtures/osctest/.osc/_apiurl | 1 + .../difffile_fixtures/osctest/.osc/_packages | 1 + tests/difffile_fixtures/osctest/.osc/_project | 1 + .../osctest/remote_localdelete/.osc/_apiurl | 1 + .../osctest/remote_localdelete/.osc/_files | 5 + .../remote_localdelete/.osc/_osclib_version | 1 + .../osctest/remote_localdelete/.osc/_package | 1 + .../osctest/remote_localdelete/.osc/_project | 1 + .../remote_localdelete/.osc/_to_be_deleted | 1 + .../osctest/remote_localdelete/.osc/foo | 1 + .../osctest/remote_localdelete/.osc/merge | 4 + .../osctest/remote_localdelete/.osc/nochange | 1 + .../osctest/remote_localdelete/foo | 1 + .../osctest/remote_localdelete/nochange | 1 + .../osctest/remote_localdelete/toadd2 | 1 + .../osctest/remote_localmodified/.osc/_apiurl | 1 + .../osctest/remote_localmodified/.osc/_files | 5 + .../remote_localmodified/.osc/_osclib_version | 1 + .../remote_localmodified/.osc/_package | 1 + .../remote_localmodified/.osc/_project | 1 + .../osctest/remote_localmodified/.osc/foo | 1 + .../osctest/remote_localmodified/.osc/merge | 4 + .../remote_localmodified/.osc/nochange | 1 + .../osctest/remote_localmodified/foo | 1 + .../osctest/remote_localmodified/merge | 4 + .../osctest/remote_localmodified/nochange | 2 + .../osctest/remote_localmodified/toadd1 | 1 + .../osctest/remote_localmodified/toadd2 | 1 + .../osctest/remote_simple/.osc/_apiurl | 1 + .../osctest/remote_simple/.osc/_files | 5 + .../remote_simple/.osc/_osclib_version | 1 + .../osctest/remote_simple/.osc/_package | 1 + .../osctest/remote_simple/.osc/_project | 1 + .../osctest/remote_simple/.osc/_to_be_added | 1 + .../osctest/remote_simple/.osc/foo | 1 + .../osctest/remote_simple/.osc/merge | 4 + .../osctest/remote_simple/.osc/nochange | 1 + .../osctest/remote_simple/foo | 1 + .../osctest/remote_simple/merge | 4 + .../osctest/remote_simple/nochange | 1 + .../osctest/remote_simple/toadd1 | 1 + .../osctest/remote_simple/toadd2 | 1 + .../osctest/remote_simple_noadd/.osc/_apiurl | 1 + .../osctest/remote_simple_noadd/.osc/_files | 5 + .../remote_simple_noadd/.osc/_osclib_version | 1 + .../osctest/remote_simple_noadd/.osc/_package | 1 + .../osctest/remote_simple_noadd/.osc/_project | 1 + .../osctest/remote_simple_noadd/.osc/foo | 1 + .../osctest/remote_simple_noadd/.osc/merge | 4 + .../osctest/remote_simple_noadd/.osc/nochange | 1 + .../osctest/remote_simple_noadd/foo | 1 + .../osctest/remote_simple_noadd/merge | 4 + .../osctest/remote_simple_noadd/nochange | 1 + .../osctest/remote_simple_noadd/toadd2 | 1 + .../osctest/simple/.osc/_apiurl | 1 + .../osctest/simple/.osc/_files | 9 + .../osctest/simple/.osc/_in_conflict | 1 + .../osctest/simple/.osc/_osclib_version | 1 + .../osctest/simple/.osc/_package | 1 + .../osctest/simple/.osc/_project | 1 + .../osctest/simple/.osc/_to_be_added | 3 + .../osctest/simple/.osc/_to_be_deleted | 2 + .../difffile_fixtures/osctest/simple/.osc/foo | 1 + .../osctest/simple/.osc/merge | 4 + .../osctest/simple/.osc/missing | 1 + .../osctest/simple/.osc/nochange | 1 + .../osctest/simple/.osc/replaced | 1 + .../osctest/simple/.osc/somefile | 1 + tests/difffile_fixtures/osctest/simple/foo | 5 + tests/difffile_fixtures/osctest/simple/merge | 4 + .../difffile_fixtures/osctest/simple/nochange | 2 + .../difffile_fixtures/osctest/simple/replaced | 1 + tests/difffile_fixtures/osctest/simple/toadd1 | 1 + tests/difffile_fixtures/osctest/simple/toadd2 | 1 + .../testDiffRemoteDeletedLocalAdded_files | 5 + ...stDiffRemoteExistingLocalNotExisting_files | 6 + ...tDiffRemoteExistingLocalNotExisting_foobar | 2 + .../testDiffRemoteMissingLocalDeleted_files | 4 + .../testDiffRemoteMissingLocalExisting_files | 4 + .../testDiffRemoteModified_files | 5 + .../testDiffRemoteModified_merge | 3 + .../testDiffRemoteNoChange_files | 5 + ...testDiffRemoteUnchangedLocalModified_files | 5 + ...tDiffRemoteUnchangedLocalModified_nochange | 1 + tests/suite.py | 2 + tests/test_difffiles.py | 249 ++++++++++++++++++ 87 files changed, 529 insertions(+) create mode 100644 tests/difffile_fixtures/oscrc create mode 100644 tests/difffile_fixtures/osctest/.osc/_apiurl create mode 100644 tests/difffile_fixtures/osctest/.osc/_packages create mode 100644 tests/difffile_fixtures/osctest/.osc/_project create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/.osc/_apiurl create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/.osc/_files create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/.osc/_osclib_version create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/.osc/_package create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/.osc/_project create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/.osc/_to_be_deleted create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/.osc/foo create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/.osc/merge create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/.osc/nochange create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/foo create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/nochange create mode 100644 tests/difffile_fixtures/osctest/remote_localdelete/toadd2 create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/.osc/_apiurl create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/.osc/_files create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/.osc/_osclib_version create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/.osc/_package create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/.osc/_project create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/.osc/foo create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/.osc/merge create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/.osc/nochange create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/foo create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/merge create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/nochange create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/toadd1 create mode 100644 tests/difffile_fixtures/osctest/remote_localmodified/toadd2 create mode 100644 tests/difffile_fixtures/osctest/remote_simple/.osc/_apiurl create mode 100644 tests/difffile_fixtures/osctest/remote_simple/.osc/_files create mode 100644 tests/difffile_fixtures/osctest/remote_simple/.osc/_osclib_version create mode 100644 tests/difffile_fixtures/osctest/remote_simple/.osc/_package create mode 100644 tests/difffile_fixtures/osctest/remote_simple/.osc/_project create mode 100644 tests/difffile_fixtures/osctest/remote_simple/.osc/_to_be_added create mode 100644 tests/difffile_fixtures/osctest/remote_simple/.osc/foo create mode 100644 tests/difffile_fixtures/osctest/remote_simple/.osc/merge create mode 100644 tests/difffile_fixtures/osctest/remote_simple/.osc/nochange create mode 100644 tests/difffile_fixtures/osctest/remote_simple/foo create mode 100644 tests/difffile_fixtures/osctest/remote_simple/merge create mode 100644 tests/difffile_fixtures/osctest/remote_simple/nochange create mode 100644 tests/difffile_fixtures/osctest/remote_simple/toadd1 create mode 100644 tests/difffile_fixtures/osctest/remote_simple/toadd2 create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_apiurl create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_files create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_osclib_version create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_package create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_project create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/foo create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/merge create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/nochange create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/foo create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/merge create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/nochange create mode 100644 tests/difffile_fixtures/osctest/remote_simple_noadd/toadd2 create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/_apiurl create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/_files create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/_in_conflict create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/_osclib_version create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/_package create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/_project create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/_to_be_added create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/_to_be_deleted create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/foo create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/merge create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/missing create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/nochange create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/replaced create mode 100644 tests/difffile_fixtures/osctest/simple/.osc/somefile create mode 100644 tests/difffile_fixtures/osctest/simple/foo create mode 100644 tests/difffile_fixtures/osctest/simple/merge create mode 100644 tests/difffile_fixtures/osctest/simple/nochange create mode 100644 tests/difffile_fixtures/osctest/simple/replaced create mode 100644 tests/difffile_fixtures/osctest/simple/toadd1 create mode 100644 tests/difffile_fixtures/osctest/simple/toadd2 create mode 100644 tests/difffile_fixtures/testDiffRemoteDeletedLocalAdded_files create mode 100644 tests/difffile_fixtures/testDiffRemoteExistingLocalNotExisting_files create mode 100644 tests/difffile_fixtures/testDiffRemoteExistingLocalNotExisting_foobar create mode 100644 tests/difffile_fixtures/testDiffRemoteMissingLocalDeleted_files create mode 100644 tests/difffile_fixtures/testDiffRemoteMissingLocalExisting_files create mode 100644 tests/difffile_fixtures/testDiffRemoteModified_files create mode 100644 tests/difffile_fixtures/testDiffRemoteModified_merge create mode 100644 tests/difffile_fixtures/testDiffRemoteNoChange_files create mode 100644 tests/difffile_fixtures/testDiffRemoteUnchangedLocalModified_files create mode 100644 tests/difffile_fixtures/testDiffRemoteUnchangedLocalModified_nochange create mode 100644 tests/test_difffiles.py diff --git a/tests/difffile_fixtures/oscrc b/tests/difffile_fixtures/oscrc new file mode 100644 index 00000000..04b2b0ab --- /dev/null +++ b/tests/difffile_fixtures/oscrc @@ -0,0 +1,104 @@ +[general] +# URL to access API server, e.g. https://api.opensuse.org +# you also need a section [https://api.opensuse.org] with the credentials +apiurl = http://localhost +# Downloaded packages are cached here. Must be writable by you. +#packagecachedir = /var/tmp/osbuild-packagecache +# Wrapper to call build as root (sudo, su -, ...) +#su-wrapper = su -c +# rootdir to setup the chroot environment +# can contain %(repo)s, %(arch)s, %(project)s and %(package)s for replacement, e.g. +# /srv/oscbuild/%(repo)s-%(arch)s or +# /srv/oscbuild/%(repo)s-%(arch)s-%(project)s-%(package)s +#build-root = /var/tmp/build-root +# compile with N jobs (default: "getconf _NPROCESSORS_ONLN") +#build-jobs = N +# build-type to use - values can be (depending on the capabilities of the 'build' script) +# empty - chroot build +# kvm - kvm VM build (needs build-device, build-swap, build-memory) +# xen - xen VM build (needs build-device, build-swap, build-memory) +# experimental: +# qemu - qemu VM build +# lxc - lxc build +#build-type = +# build-device is the disk-image file to use as root for VM builds +# e.g. /var/tmp/FILE.root +#build-device = /var/tmp/FILE.root +# build-swap is the disk-image to use as swap for VM builds +# e.g. /var/tmp/FILE.swap +#build-swap = /var/tmp/FILE.swap +# build-memory is the amount of memory used in the VM +# value in MB - e.g. 512 +#build-memory = 512 +# build-vmdisk-rootsize is the size of the disk-image used as root in a VM build +# values in MB - e.g. 4096 +#build-vmdisk-rootsize = 4096 +# build-vmdisk-swapsize is the size of the disk-image used as swap in a VM build +# values in MB - e.g. 1024 +#build-vmdisk-swapsize = 1024 +# Numeric uid:gid to assign to the "abuild" user in the build-root +# or "caller" to use the current users uid:gid +# This is convenient when sharing the buildroot with ordinary userids +# on the host. +# This should not be 0 +# build-uid = +# extra packages to install when building packages locally (osc build) +# this corresponds to osc build's -x option and can be overridden with that +# -x '' can also be given on the command line to override this setting, or +# you can have an empty setting here. +#extra-pkgs = vim gdb strace +# build platform is used if the platform argument is omitted to osc build +#build_repository = openSUSE_Factory +# default project for getpac or bco +#getpac_default_project = openSUSE:Factory +# alternate filesystem layout: have multiple subdirs, where colons were. +#checkout_no_colon = 0 +# local files to ignore with status, addremove, .... +#exclude_glob = .osc CVS .svn .* _linkerror *~ #*# *.orig *.bak *.changes.* +# keep passwords in plaintext. If you see this comment, your osc +# already uses the encrypted password, and only keeps them in plain text +# for backwards compatibility. Default will change to 0 in future releases. +# You can remove the plaintext password without harm, if you do not need +# backwards compatibility. +#plaintext_passwd = 1 +# limit the age of requests shown with 'osc req list'. +# this is a default only, can be overridden by 'osc req list -D NNN' +# Use 0 for unlimted. +#request_list_days = 0 +# show info useful for debugging +#debug = 1 +# show HTTP traffic useful for debugging +#http_debug = 1 +# Skip signature verification of packages used for build. +#no_verify = 1 +# jump into the debugger in case of errors +#post_mortem = 1 +# print call traces in case of errors +#traceback = 1 +# use KDE/Gnome/MacOS/Windows keyring for credentials if available +#use_keyring = 1 +# check for unversioned/removed files before commit +#check_filelist = 1 +# check for pending requests after executing an action (e.g. checkout, update, commit) +#check_for_request_on_action = 0 +# what to do with the source package if the submitrequest has been accepted. If +# nothing is specified the API default is used +#submitrequest_on_accept_action = cleanup|update|noupdate +#review requests interactively (default: off) +#request_show_review = 1 +# Directory with executables to validate sources, esp before committing +#source_validator_directory = /usr/lib/osc/source_validators + +[http://localhost] +user = Admin +pass = opensuse +passx = QlpoOTFBWSZTWeTSblkAAAGBgAIBygAgADDACGNEHxaYXckU4UJDk0m5ZA== +# set aliases for this apiurl +# aliases = foo, bar +# email used in .changes, unless the one from osc meta prj will be used +# email = +# additional headers to pass to a request, e.g. for special authentication +#http_headers = Host: foofoobar, +# User: mumblegack +# Force using of keyring for this API +#keyring = 1 diff --git a/tests/difffile_fixtures/osctest/.osc/_apiurl b/tests/difffile_fixtures/osctest/.osc/_apiurl new file mode 100644 index 00000000..0afeace7 --- /dev/null +++ b/tests/difffile_fixtures/osctest/.osc/_apiurl @@ -0,0 +1 @@ +http://localhost diff --git a/tests/difffile_fixtures/osctest/.osc/_packages b/tests/difffile_fixtures/osctest/.osc/_packages new file mode 100644 index 00000000..04e56f00 --- /dev/null +++ b/tests/difffile_fixtures/osctest/.osc/_packages @@ -0,0 +1 @@ + diff --git a/tests/difffile_fixtures/osctest/.osc/_project b/tests/difffile_fixtures/osctest/.osc/_project new file mode 100644 index 00000000..b83ffd3c --- /dev/null +++ b/tests/difffile_fixtures/osctest/.osc/_project @@ -0,0 +1 @@ +osctest diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_apiurl b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_apiurl new file mode 100644 index 00000000..0afeace7 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_apiurl @@ -0,0 +1 @@ +http://localhost diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_files b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_files new file mode 100644 index 00000000..f0dac1f4 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_files @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_osclib_version b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_osclib_version new file mode 100644 index 00000000..d3827e75 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_osclib_version @@ -0,0 +1 @@ +1.0 diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_package b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_package new file mode 100644 index 00000000..5d09f91b --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_package @@ -0,0 +1 @@ +remote_localdelete diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_project b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_project new file mode 100644 index 00000000..cea3bc84 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_project @@ -0,0 +1 @@ +osctest \ No newline at end of file diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_to_be_deleted b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_to_be_deleted new file mode 100644 index 00000000..a00af07a --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/_to_be_deleted @@ -0,0 +1 @@ +merge diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/.osc/foo b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/foo new file mode 100644 index 00000000..3bb34cf8 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/foo @@ -0,0 +1 @@ +This is a simple test. diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/.osc/merge b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/merge new file mode 100644 index 00000000..0b4685d5 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/merge @@ -0,0 +1,4 @@ +Is it +possible to +merge this file? +I hope so... diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/.osc/nochange b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/nochange new file mode 100644 index 00000000..0569b03f --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/.osc/nochange @@ -0,0 +1 @@ +This file didn't change. diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/foo b/tests/difffile_fixtures/osctest/remote_localdelete/foo new file mode 100644 index 00000000..3bb34cf8 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/foo @@ -0,0 +1 @@ +This is a simple test. diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/nochange b/tests/difffile_fixtures/osctest/remote_localdelete/nochange new file mode 100644 index 00000000..0569b03f --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/nochange @@ -0,0 +1 @@ +This file didn't change. diff --git a/tests/difffile_fixtures/osctest/remote_localdelete/toadd2 b/tests/difffile_fixtures/osctest/remote_localdelete/toadd2 new file mode 100644 index 00000000..6f1ab97c --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localdelete/toadd2 @@ -0,0 +1 @@ +toadd2 diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_apiurl b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_apiurl new file mode 100644 index 00000000..0afeace7 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_apiurl @@ -0,0 +1 @@ +http://localhost diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_files b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_files new file mode 100644 index 00000000..f0dac1f4 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_files @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_osclib_version b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_osclib_version new file mode 100644 index 00000000..d3827e75 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_osclib_version @@ -0,0 +1 @@ +1.0 diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_package b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_package new file mode 100644 index 00000000..6c6c3a86 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_package @@ -0,0 +1 @@ +remote_localmodified diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_project b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_project new file mode 100644 index 00000000..cea3bc84 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/_project @@ -0,0 +1 @@ +osctest \ No newline at end of file diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/.osc/foo b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/foo new file mode 100644 index 00000000..3bb34cf8 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/foo @@ -0,0 +1 @@ +This is a simple test. diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/.osc/merge b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/merge new file mode 100644 index 00000000..0b4685d5 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/merge @@ -0,0 +1,4 @@ +Is it +possible to +merge this file? +I hope so... diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/.osc/nochange b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/nochange new file mode 100644 index 00000000..0569b03f --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/.osc/nochange @@ -0,0 +1 @@ +This file didn't change. diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/foo b/tests/difffile_fixtures/osctest/remote_localmodified/foo new file mode 100644 index 00000000..3bb34cf8 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/foo @@ -0,0 +1 @@ +This is a simple test. diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/merge b/tests/difffile_fixtures/osctest/remote_localmodified/merge new file mode 100644 index 00000000..0b4685d5 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/merge @@ -0,0 +1,4 @@ +Is it +possible to +merge this file? +I hope so... diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/nochange b/tests/difffile_fixtures/osctest/remote_localmodified/nochange new file mode 100644 index 00000000..a64acb77 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/nochange @@ -0,0 +1,2 @@ +This file didn't change. +oh it does diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/toadd1 b/tests/difffile_fixtures/osctest/remote_localmodified/toadd1 new file mode 100644 index 00000000..15924238 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/toadd1 @@ -0,0 +1 @@ +toadd1 diff --git a/tests/difffile_fixtures/osctest/remote_localmodified/toadd2 b/tests/difffile_fixtures/osctest/remote_localmodified/toadd2 new file mode 100644 index 00000000..6f1ab97c --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_localmodified/toadd2 @@ -0,0 +1 @@ +toadd2 diff --git a/tests/difffile_fixtures/osctest/remote_simple/.osc/_apiurl b/tests/difffile_fixtures/osctest/remote_simple/.osc/_apiurl new file mode 100644 index 00000000..0afeace7 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/.osc/_apiurl @@ -0,0 +1 @@ +http://localhost diff --git a/tests/difffile_fixtures/osctest/remote_simple/.osc/_files b/tests/difffile_fixtures/osctest/remote_simple/.osc/_files new file mode 100644 index 00000000..f0dac1f4 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/.osc/_files @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/tests/difffile_fixtures/osctest/remote_simple/.osc/_osclib_version b/tests/difffile_fixtures/osctest/remote_simple/.osc/_osclib_version new file mode 100644 index 00000000..d3827e75 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/.osc/_osclib_version @@ -0,0 +1 @@ +1.0 diff --git a/tests/difffile_fixtures/osctest/remote_simple/.osc/_package b/tests/difffile_fixtures/osctest/remote_simple/.osc/_package new file mode 100644 index 00000000..7894c46b --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/.osc/_package @@ -0,0 +1 @@ +remote_simple diff --git a/tests/difffile_fixtures/osctest/remote_simple/.osc/_project b/tests/difffile_fixtures/osctest/remote_simple/.osc/_project new file mode 100644 index 00000000..cea3bc84 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/.osc/_project @@ -0,0 +1 @@ +osctest \ No newline at end of file diff --git a/tests/difffile_fixtures/osctest/remote_simple/.osc/_to_be_added b/tests/difffile_fixtures/osctest/remote_simple/.osc/_to_be_added new file mode 100644 index 00000000..15924238 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/.osc/_to_be_added @@ -0,0 +1 @@ +toadd1 diff --git a/tests/difffile_fixtures/osctest/remote_simple/.osc/foo b/tests/difffile_fixtures/osctest/remote_simple/.osc/foo new file mode 100644 index 00000000..3bb34cf8 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/.osc/foo @@ -0,0 +1 @@ +This is a simple test. diff --git a/tests/difffile_fixtures/osctest/remote_simple/.osc/merge b/tests/difffile_fixtures/osctest/remote_simple/.osc/merge new file mode 100644 index 00000000..0b4685d5 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/.osc/merge @@ -0,0 +1,4 @@ +Is it +possible to +merge this file? +I hope so... diff --git a/tests/difffile_fixtures/osctest/remote_simple/.osc/nochange b/tests/difffile_fixtures/osctest/remote_simple/.osc/nochange new file mode 100644 index 00000000..0569b03f --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/.osc/nochange @@ -0,0 +1 @@ +This file didn't change. diff --git a/tests/difffile_fixtures/osctest/remote_simple/foo b/tests/difffile_fixtures/osctest/remote_simple/foo new file mode 100644 index 00000000..3bb34cf8 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/foo @@ -0,0 +1 @@ +This is a simple test. diff --git a/tests/difffile_fixtures/osctest/remote_simple/merge b/tests/difffile_fixtures/osctest/remote_simple/merge new file mode 100644 index 00000000..0b4685d5 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/merge @@ -0,0 +1,4 @@ +Is it +possible to +merge this file? +I hope so... diff --git a/tests/difffile_fixtures/osctest/remote_simple/nochange b/tests/difffile_fixtures/osctest/remote_simple/nochange new file mode 100644 index 00000000..0569b03f --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/nochange @@ -0,0 +1 @@ +This file didn't change. diff --git a/tests/difffile_fixtures/osctest/remote_simple/toadd1 b/tests/difffile_fixtures/osctest/remote_simple/toadd1 new file mode 100644 index 00000000..15924238 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/toadd1 @@ -0,0 +1 @@ +toadd1 diff --git a/tests/difffile_fixtures/osctest/remote_simple/toadd2 b/tests/difffile_fixtures/osctest/remote_simple/toadd2 new file mode 100644 index 00000000..6f1ab97c --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple/toadd2 @@ -0,0 +1 @@ +toadd2 diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_apiurl b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_apiurl new file mode 100644 index 00000000..0afeace7 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_apiurl @@ -0,0 +1 @@ +http://localhost diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_files b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_files new file mode 100644 index 00000000..f0dac1f4 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_files @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_osclib_version b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_osclib_version new file mode 100644 index 00000000..d3827e75 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_osclib_version @@ -0,0 +1 @@ +1.0 diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_package b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_package new file mode 100644 index 00000000..6a700727 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_package @@ -0,0 +1 @@ +remote_simple_noadd diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_project b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_project new file mode 100644 index 00000000..cea3bc84 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/_project @@ -0,0 +1 @@ +osctest \ No newline at end of file diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/foo b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/foo new file mode 100644 index 00000000..3bb34cf8 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/foo @@ -0,0 +1 @@ +This is a simple test. diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/merge b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/merge new file mode 100644 index 00000000..0b4685d5 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/merge @@ -0,0 +1,4 @@ +Is it +possible to +merge this file? +I hope so... diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/nochange b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/nochange new file mode 100644 index 00000000..0569b03f --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/.osc/nochange @@ -0,0 +1 @@ +This file didn't change. diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/foo b/tests/difffile_fixtures/osctest/remote_simple_noadd/foo new file mode 100644 index 00000000..3bb34cf8 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/foo @@ -0,0 +1 @@ +This is a simple test. diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/merge b/tests/difffile_fixtures/osctest/remote_simple_noadd/merge new file mode 100644 index 00000000..0b4685d5 --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/merge @@ -0,0 +1,4 @@ +Is it +possible to +merge this file? +I hope so... diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/nochange b/tests/difffile_fixtures/osctest/remote_simple_noadd/nochange new file mode 100644 index 00000000..0569b03f --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/nochange @@ -0,0 +1 @@ +This file didn't change. diff --git a/tests/difffile_fixtures/osctest/remote_simple_noadd/toadd2 b/tests/difffile_fixtures/osctest/remote_simple_noadd/toadd2 new file mode 100644 index 00000000..6f1ab97c --- /dev/null +++ b/tests/difffile_fixtures/osctest/remote_simple_noadd/toadd2 @@ -0,0 +1 @@ +toadd2 diff --git a/tests/difffile_fixtures/osctest/simple/.osc/_apiurl b/tests/difffile_fixtures/osctest/simple/.osc/_apiurl new file mode 100644 index 00000000..0afeace7 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/_apiurl @@ -0,0 +1 @@ +http://localhost diff --git a/tests/difffile_fixtures/osctest/simple/.osc/_files b/tests/difffile_fixtures/osctest/simple/.osc/_files new file mode 100644 index 00000000..b771c18d --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/_files @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/tests/difffile_fixtures/osctest/simple/.osc/_in_conflict b/tests/difffile_fixtures/osctest/simple/.osc/_in_conflict new file mode 100644 index 00000000..257cc564 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/_in_conflict @@ -0,0 +1 @@ +foo diff --git a/tests/difffile_fixtures/osctest/simple/.osc/_osclib_version b/tests/difffile_fixtures/osctest/simple/.osc/_osclib_version new file mode 100644 index 00000000..d3827e75 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/_osclib_version @@ -0,0 +1 @@ +1.0 diff --git a/tests/difffile_fixtures/osctest/simple/.osc/_package b/tests/difffile_fixtures/osctest/simple/.osc/_package new file mode 100644 index 00000000..8fd32466 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/_package @@ -0,0 +1 @@ +simple \ No newline at end of file diff --git a/tests/difffile_fixtures/osctest/simple/.osc/_project b/tests/difffile_fixtures/osctest/simple/.osc/_project new file mode 100644 index 00000000..cea3bc84 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/_project @@ -0,0 +1 @@ +osctest \ No newline at end of file diff --git a/tests/difffile_fixtures/osctest/simple/.osc/_to_be_added b/tests/difffile_fixtures/osctest/simple/.osc/_to_be_added new file mode 100644 index 00000000..1f4923c4 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/_to_be_added @@ -0,0 +1,3 @@ +toadd1 +replaced +addedmissing diff --git a/tests/difffile_fixtures/osctest/simple/.osc/_to_be_deleted b/tests/difffile_fixtures/osctest/simple/.osc/_to_be_deleted new file mode 100644 index 00000000..98b0eecc --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/_to_be_deleted @@ -0,0 +1,2 @@ +somefile +modified diff --git a/tests/difffile_fixtures/osctest/simple/.osc/foo b/tests/difffile_fixtures/osctest/simple/.osc/foo new file mode 100644 index 00000000..3bb34cf8 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/foo @@ -0,0 +1 @@ +This is a simple test. diff --git a/tests/difffile_fixtures/osctest/simple/.osc/merge b/tests/difffile_fixtures/osctest/simple/.osc/merge new file mode 100644 index 00000000..0b4685d5 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/merge @@ -0,0 +1,4 @@ +Is it +possible to +merge this file? +I hope so... diff --git a/tests/difffile_fixtures/osctest/simple/.osc/missing b/tests/difffile_fixtures/osctest/simple/.osc/missing new file mode 100644 index 00000000..33e45d56 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/missing @@ -0,0 +1 @@ +missing diff --git a/tests/difffile_fixtures/osctest/simple/.osc/nochange b/tests/difffile_fixtures/osctest/simple/.osc/nochange new file mode 100644 index 00000000..0569b03f --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/nochange @@ -0,0 +1 @@ +This file didn't change. diff --git a/tests/difffile_fixtures/osctest/simple/.osc/replaced b/tests/difffile_fixtures/osctest/simple/.osc/replaced new file mode 100644 index 00000000..7c3f1a85 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/replaced @@ -0,0 +1 @@ +yet another file diff --git a/tests/difffile_fixtures/osctest/simple/.osc/somefile b/tests/difffile_fixtures/osctest/simple/.osc/somefile new file mode 100644 index 00000000..2ef267e2 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/.osc/somefile @@ -0,0 +1 @@ +some content diff --git a/tests/difffile_fixtures/osctest/simple/foo b/tests/difffile_fixtures/osctest/simple/foo new file mode 100644 index 00000000..ad9621d7 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/foo @@ -0,0 +1,5 @@ +<<<<<<< foo.mine +This is no test. +======= +This is a simple test. +>>>>>>> foo.r2 diff --git a/tests/difffile_fixtures/osctest/simple/merge b/tests/difffile_fixtures/osctest/simple/merge new file mode 100644 index 00000000..0b4685d5 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/merge @@ -0,0 +1,4 @@ +Is it +possible to +merge this file? +I hope so... diff --git a/tests/difffile_fixtures/osctest/simple/nochange b/tests/difffile_fixtures/osctest/simple/nochange new file mode 100644 index 00000000..3a48a293 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/nochange @@ -0,0 +1,2 @@ +This file didn't change but +is modified. diff --git a/tests/difffile_fixtures/osctest/simple/replaced b/tests/difffile_fixtures/osctest/simple/replaced new file mode 100644 index 00000000..f479fb89 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/replaced @@ -0,0 +1 @@ +foo replaced diff --git a/tests/difffile_fixtures/osctest/simple/toadd1 b/tests/difffile_fixtures/osctest/simple/toadd1 new file mode 100644 index 00000000..15924238 --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/toadd1 @@ -0,0 +1 @@ +toadd1 diff --git a/tests/difffile_fixtures/osctest/simple/toadd2 b/tests/difffile_fixtures/osctest/simple/toadd2 new file mode 100644 index 00000000..6f1ab97c --- /dev/null +++ b/tests/difffile_fixtures/osctest/simple/toadd2 @@ -0,0 +1 @@ +toadd2 diff --git a/tests/difffile_fixtures/testDiffRemoteDeletedLocalAdded_files b/tests/difffile_fixtures/testDiffRemoteDeletedLocalAdded_files new file mode 100644 index 00000000..4aec6afd --- /dev/null +++ b/tests/difffile_fixtures/testDiffRemoteDeletedLocalAdded_files @@ -0,0 +1,5 @@ + + + + + diff --git a/tests/difffile_fixtures/testDiffRemoteExistingLocalNotExisting_files b/tests/difffile_fixtures/testDiffRemoteExistingLocalNotExisting_files new file mode 100644 index 00000000..bfdf9df3 --- /dev/null +++ b/tests/difffile_fixtures/testDiffRemoteExistingLocalNotExisting_files @@ -0,0 +1,6 @@ + + + + + + diff --git a/tests/difffile_fixtures/testDiffRemoteExistingLocalNotExisting_foobar b/tests/difffile_fixtures/testDiffRemoteExistingLocalNotExisting_foobar new file mode 100644 index 00000000..e7856a6d --- /dev/null +++ b/tests/difffile_fixtures/testDiffRemoteExistingLocalNotExisting_foobar @@ -0,0 +1,2 @@ +foobar +barfoo diff --git a/tests/difffile_fixtures/testDiffRemoteMissingLocalDeleted_files b/tests/difffile_fixtures/testDiffRemoteMissingLocalDeleted_files new file mode 100644 index 00000000..3ceb10c8 --- /dev/null +++ b/tests/difffile_fixtures/testDiffRemoteMissingLocalDeleted_files @@ -0,0 +1,4 @@ + + + + diff --git a/tests/difffile_fixtures/testDiffRemoteMissingLocalExisting_files b/tests/difffile_fixtures/testDiffRemoteMissingLocalExisting_files new file mode 100644 index 00000000..204fddab --- /dev/null +++ b/tests/difffile_fixtures/testDiffRemoteMissingLocalExisting_files @@ -0,0 +1,4 @@ + + + + diff --git a/tests/difffile_fixtures/testDiffRemoteModified_files b/tests/difffile_fixtures/testDiffRemoteModified_files new file mode 100644 index 00000000..d0983af9 --- /dev/null +++ b/tests/difffile_fixtures/testDiffRemoteModified_files @@ -0,0 +1,5 @@ + + + + + diff --git a/tests/difffile_fixtures/testDiffRemoteModified_merge b/tests/difffile_fixtures/testDiffRemoteModified_merge new file mode 100644 index 00000000..6236bd08 --- /dev/null +++ b/tests/difffile_fixtures/testDiffRemoteModified_merge @@ -0,0 +1,3 @@ +Is it +possible to +merge this file? diff --git a/tests/difffile_fixtures/testDiffRemoteNoChange_files b/tests/difffile_fixtures/testDiffRemoteNoChange_files new file mode 100644 index 00000000..4aec6afd --- /dev/null +++ b/tests/difffile_fixtures/testDiffRemoteNoChange_files @@ -0,0 +1,5 @@ + + + + + diff --git a/tests/difffile_fixtures/testDiffRemoteUnchangedLocalModified_files b/tests/difffile_fixtures/testDiffRemoteUnchangedLocalModified_files new file mode 100644 index 00000000..4aec6afd --- /dev/null +++ b/tests/difffile_fixtures/testDiffRemoteUnchangedLocalModified_files @@ -0,0 +1,5 @@ + + + + + diff --git a/tests/difffile_fixtures/testDiffRemoteUnchangedLocalModified_nochange b/tests/difffile_fixtures/testDiffRemoteUnchangedLocalModified_nochange new file mode 100644 index 00000000..0569b03f --- /dev/null +++ b/tests/difffile_fixtures/testDiffRemoteUnchangedLocalModified_nochange @@ -0,0 +1 @@ +This file didn't change. diff --git a/tests/suite.py b/tests/suite.py index 3d12ae7e..b7ded1ec 100644 --- a/tests/suite.py +++ b/tests/suite.py @@ -3,10 +3,12 @@ import test_update import test_addfiles import test_deletefiles import test_revertfiles +import test_difffiles suite = unittest.TestSuite() suite.addTests(test_addfiles.suite()) suite.addTests(test_deletefiles.suite()) suite.addTests(test_revertfiles.suite()) suite.addTests(test_update.suite()) +suite.addTests(test_difffiles.suite()) unittest.TextTestRunner(verbosity=1).run(suite) diff --git a/tests/test_difffiles.py b/tests/test_difffiles.py new file mode 100644 index 00000000..1a4083d9 --- /dev/null +++ b/tests/test_difffiles.py @@ -0,0 +1,249 @@ +import osc.core +import osc.oscerr +import os +import sys +from common import GET, OscTestCase + +FIXTURES_DIR = os.path.join(os.getcwd(), 'difffile_fixtures') + +def suite(): + import unittest + return unittest.makeSuite(TestDiffFiles) + +class TestDiffFiles(OscTestCase): + diff_hdr = 'Index: %s\n===================================================================' + def _get_fixtures_dir(self): + return FIXTURES_DIR + + def testDiffUnmodified(self): + """diff an unmodified file""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.todo = ['merge'] + self.__check_diff(p, '', None) + + def testDiffAdded(self): + """diff an added file""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.todo = ['toadd1'] + exp = """%s +--- toadd1\t(revision 0) ++++ toadd1\t(revision 0) +@@ -0,0 +1,1 @@ ++toadd1 +""" % (TestDiffFiles.diff_hdr % 'toadd1') + self.__check_diff(p, exp, None) + + def testDiffRemoved(self): + """diff a removed file""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.todo = ['somefile'] + exp = """%s +--- somefile\t(revision 2) ++++ somefile\t(working copy) +@@ -1,1 +0,0 @@ +-some content +""" % (TestDiffFiles.diff_hdr % 'somefile') + self.__check_diff(p, exp, None) + + def testDiffMissing(self): + """diff a missing file (missing files are ignored)""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.todo = ['missing'] + self.__check_diff(p, '', None) + + def testDiffReplaced(self): + """diff a replaced file""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.todo = ['replaced'] + exp = """%s +--- replaced\t(revision 2) ++++ replaced\t(working copy) +@@ -1,1 +1,1 @@ +-yet another file ++foo replaced +""" % (TestDiffFiles.diff_hdr % 'replaced') + self.__check_diff(p, exp, None) + + def testDiffSkipped(self): + """diff a skipped file (skipped files are ignored)""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.todo = ['skipped'] + self.__check_diff(p, '', None) + + def testDiffConflict(self): + """diff a file which is in the conflict state""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.todo = ['foo'] + exp = """%s +--- foo\t(revision 2) ++++ foo\t(working copy) +@@ -1,1 +1,5 @@ ++<<<<<<< foo.mine ++This is no test. ++======= + This is a simple test. ++>>>>>>> foo.r2 +""" % (TestDiffFiles.diff_hdr % 'foo') + self.__check_diff(p, exp, None) + + def testDiffModified(self): + """diff a modified file""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.todo = ['nochange'] + exp = """%s +--- nochange\t(revision 2) ++++ nochange\t(working copy) +@@ -1,1 +1,2 @@ +-This file didn't change. ++This file didn't change but ++is modified. +""" % (TestDiffFiles.diff_hdr % 'nochange') + self.__check_diff(p, exp, None) + + def testDiffUnversioned(self): + """diff an unversioned file""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.todo = ['toadd2'] + self.assertRaises(IOError, self.__check_diff, p, '', None) + + def testDiffMultipleFiles(self): + """diff multiple files""" + self._change_to_pkg('simple') + p = osc.core.Package('.') + p.todo = ['nochange', 'somefile'] + exp = """%s +--- nochange\t(revision 2) ++++ nochange\t(working copy) +@@ -1,1 +1,2 @@ +-This file didn't change. ++This file didn't change but ++is modified. +%s +--- somefile\t(revision 2) ++++ somefile\t(working copy) +@@ -1,1 +0,0 @@ +-some content +""" % (TestDiffFiles.diff_hdr % 'nochange', TestDiffFiles.diff_hdr % 'somefile') + + # diff with revision + @GET('http://localhost/source/osctest/remote_simple_noadd?rev=3', file='testDiffRemoteNoChange_files') + def testDiffRemoteNoChange(self): + """diff against remote revision where no file changed""" + self._change_to_pkg('remote_simple_noadd') + p = osc.core.Package('.') + self.__check_diff(p, '', 3) + + @GET('http://localhost/source/osctest/remote_simple?rev=3', file='testDiffRemoteModified_files') + @GET('http://localhost/source/osctest/remote_simple/merge?rev=3', file='testDiffRemoteModified_merge') + def testDiffRemoteModified(self): + """diff against a remote revision with one modified file""" + self._change_to_pkg('remote_simple') + p = osc.core.Package('.') + exp = """%s +--- merge\t(revision 3) ++++ merge\t(working copy) +@@ -1,3 +1,4 @@ + Is it + possible to + merge this file? ++I hope so... +%s +--- toadd1\t(revision 0) ++++ toadd1\t(revision 0) +@@ -0,0 +1,1 @@ ++toadd1 +""" % (TestDiffFiles.diff_hdr % 'merge', TestDiffFiles.diff_hdr % 'toadd1') + self.__check_diff(p, exp, 3) + + @GET('http://localhost/source/osctest/remote_simple?rev=3', file='testDiffRemoteDeletedLocalAdded_files') + def testDiffRemoteNotExistingLocalAdded(self): + """ + a file which doesn't exist in a remote revision and + has status A in the wc + """ + self._change_to_pkg('remote_simple') + p = osc.core.Package('.') + exp = """%s +--- toadd1\t(revision 0) ++++ toadd1\t(revision 0) +@@ -0,0 +1,1 @@ ++toadd1 +""" % (TestDiffFiles.diff_hdr % 'toadd1') + self.__check_diff(p, exp, 3) + + @GET('http://localhost/source/osctest/remote_simple_noadd?rev=3', file='testDiffRemoteExistingLocalNotExisting_files') + @GET('http://localhost/source/osctest/remote_simple_noadd/foobar?rev=3', file='testDiffRemoteExistingLocalNotExisting_foobar') + def testDiffRemoteExistingLocalNotExisting(self): + """ + a file doesn't exist in the local wc but exists + in the remote revision + """ + self._change_to_pkg('remote_simple_noadd') + p = osc.core.Package('.') + exp = """%s +--- foobar\t(revision 3) ++++ foobar\t(working copy) +@@ -1,2 +0,0 @@ +-foobar +-barfoo +""" % (TestDiffFiles.diff_hdr % 'foobar') + self.__check_diff(p, exp, 3) + + @GET('http://localhost/source/osctest/remote_localmodified?rev=3', file='testDiffRemoteUnchangedLocalModified_files') + @GET('http://localhost/source/osctest/remote_localmodified/nochange?rev=3', file='testDiffRemoteUnchangedLocalModified_nochange') + def testDiffRemoteUnchangedLocalModified(self): + """remote revision didn't change, local file is modified""" + self._change_to_pkg('remote_localmodified') + p = osc.core.Package('.') + exp = """%s +--- nochange\t(revision 3) ++++ nochange\t(working copy) +@@ -1,1 +1,2 @@ + This file didn't change. ++oh it does +""" % (TestDiffFiles.diff_hdr % 'nochange') + self.__check_diff(p, exp, 3) + + @GET('http://localhost/source/osctest/remote_simple_noadd?rev=3', file='testDiffRemoteMissingLocalExisting_files') + def testDiffRemoteMissingLocalExisting(self): + """ + remote revision misses a file which exists in the local wc (state ' ')""" + self._change_to_pkg('remote_simple_noadd') + p = osc.core.Package('.') + exp = """%s +--- foo\t(revision 0) ++++ foo\t(working copy) +@@ -0,0 +1,1 @@ ++This is a simple test. +""" % (TestDiffFiles.diff_hdr % 'foo') + self.__check_diff(p, exp, 3) + + @GET('http://localhost/source/osctest/remote_localdelete?rev=3', file='testDiffRemoteMissingLocalDeleted_files') + def testDiffRemoteMissingLocalDeleted(self): + """ + remote revision misses a file which is marked for + deletion in the local wc + """ + # empty diff is expected (svn does the same) + self._change_to_pkg('remote_localdelete') + p = osc.core.Package('.') + self.__check_diff(p, '', 3) + + def __check_diff(self, p, exp, revision=None): + s = '' + for i in p.get_diff(revision): + s += ''.join(i) + self.assertEqual(s, exp) + +if __name__ == '__main__': + import unittest + unittest.main()