diff --git a/test/commit.vader b/test/commit.vader new file mode 100644 index 0000000000000000000000000000000000000000..7e5823a7617830377429f5187fe6e4392385ed32 --- /dev/null +++ b/test/commit.vader @@ -0,0 +1,78 @@ +Include: setup.inc + +Execute (Stage untracked file with magit#stage_hunk on end hunk): + call Cd_test_sub() + Magit + + Log("Stage first hunk") + call Search_file('unstaged', 0) + call magit#open_close_folding(1) + /^@@ + call Move_relative(+3) + call Cursor_position() + call magit#stage_hunk(0) + + Log("Check first stage") + call Cd_test() + let diff=Git_diff('staged', Get_filename(0)) + call Expect_diff(g:test_script_dir . 'commit/commit_diff1.expect', diff) + call Cd_test_sub() + + Log("Start a commit") + call magit#commit_command('CC') + call append(line('.'), ['Add bootstrap file', '', 'Some description text', 'On multiple lines', '', 'With blanks']) + + Log("Stage a second hunk") + call Search_file('unstaged', 1) + call magit#stage_hunk(0) + + Log("Check second stage") + call Cd_test() + let diff=Git_diff('staged', Get_filename(1)) + call Expect_diff(g:test_script_dir . 'commit/commit_diff2.expect', diff) + + Log("Complete commit message") + call magit#commit_command('CC') + call append(line('.'), ['Add more line after refresh', '']) + call Cd_test_sub() + + Log("Update buffer") + call cursor(1, 0) + call magit#update_buffer() + call cursor(line('$'), 0) + call magit#update_buffer() + + call magit#commit_command('CC') + call magit#commit_command('CC') + call Cd_test() + let commit_msg=Git_commit_msg('HEAD') + call Expect_diff(g:test_script_dir . 'commit/commit_commit1.expect', commit_msg) + + Log("Stage third hunk") + call Search_file('unstaged', 0) + call magit#open_close_folding(1) + /^@@ + call magit#stage_hunk(0) + + Log("Check third stage") + call Cd_test() + let diff=Git_diff('staged', Get_filename(0)) + call Expect_diff(g:test_script_dir . 'commit/commit_diff3.expect', diff) + + Log("Start a commit") + call magit#commit_command('CC') + call append(line('.'), ['Dont want these lines']) + call Cd_test_sub() + + Log("Close commit") + call magit#close_commit() + + Log("Finish commit") + call magit#commit_command('CC') + call append(line('.'), ['Uber commit message']) + call magit#commit_command('CC') + call Cd_test() + let commit_msg=Git_commit_msg('HEAD') + call Expect_diff(g:test_script_dir . 'commit/commit_commit2.expect', commit_msg) + +Include: cleanup.inc diff --git a/test/commit/commit_commit1.expect b/test/commit/commit_commit1.expect new file mode 100644 index 0000000000000000000000000000000000000000..86f78e9fe5cb67649ce1cc6282ad2ec285d9fae7 --- /dev/null +++ b/test/commit/commit_commit1.expect @@ -0,0 +1,31 @@ +Add more line after refresh + +Add bootstrap file + +Some description text +On multiple lines + +With blanks + + +diff --git books/models.py books/models.py +--- books/models.py ++++ books/models.py +@@ -1,5 +1,9 @@ + from django.db import models + ++import urllib2 as urllib ++from PIL import Image ++import io ++ + import isbn_search + + class User(models.Model): +diff --git bootstrap bootstrap +new file mode 100755 +--- /dev/null ++++ bootstrap +@@ -0,0 +1,3 @@ ++pip install --user python-amazon-simple-product-api django ++python manage.py migrate ++python manage.py makemigrations books diff --git a/test/commit/commit_commit2.expect b/test/commit/commit_commit2.expect new file mode 100644 index 0000000000000000000000000000000000000000..4c521ef0e50e628d472a0cce8811d2161f8618f4 --- /dev/null +++ b/test/commit/commit_commit2.expect @@ -0,0 +1,38 @@ +Uber commit message + + +diff --git books/models.py books/models.py +--- books/models.py ++++ books/models.py +@@ -24,20 +24,26 @@ class BookManager(models.Manager): + eisbn = product.eisbn, + author = product.author, + title = product.title, +- edition = product.edition ++ edition = product.edition, + ) ++ if product.cover_url is not '': ++ cover_img_bin = urllib.urlopen(product.cover_url) ++ cover_img_file = Image.open(io.BytesIO(cover_img_bin.read())) ++ book.cover_img.save("cover.jpg", cover_img_file) + return book + ++def upload_path(book, filename): ++ return 'covers/%s/%s' % (book.isbn, filename) ++ + class Book(models.Model): + isbn = models.CharField(max_length=10, unique=True) +- eisbn = models.CharField(max_length=13, blank=True) ++ eisbn = models.CharField(max_length=13, blank=True, null=True) + title = models.CharField(max_length=200) + author = models.CharField(max_length=200) +- edition = models.CharField(max_length=200, blank=True) +- cover = models.ImageField(upload_to='covers', blank=True) ++ edition = models.CharField(max_length=200, blank=True, null=True) ++ cover_img = models.ImageField(upload_to=upload_path) + def __unicode__(self): + return u'[%s] "%s" by %s' % (self.isbn, self.title, self.author,) +- + objects = BookManager() + + diff --git a/test/commit/commit_diff1.expect b/test/commit/commit_diff1.expect new file mode 100644 index 0000000000000000000000000000000000000000..4d9138a938c57a7b32e49aa6e00289063c97ab00 --- /dev/null +++ b/test/commit/commit_diff1.expect @@ -0,0 +1,13 @@ +diff --git books/models.py books/models.py +--- books/models.py ++++ books/models.py +@@ -1,5 +1,9 @@ + from django.db import models + ++import urllib2 as urllib ++from PIL import Image ++import io ++ + import isbn_search + + class User(models.Model): diff --git a/test/commit/commit_diff2.expect b/test/commit/commit_diff2.expect new file mode 100644 index 0000000000000000000000000000000000000000..76e066c4387ad7187987eb805fae4a31d177c8e3 --- /dev/null +++ b/test/commit/commit_diff2.expect @@ -0,0 +1,8 @@ +diff --git bootstrap bootstrap +new file mode 100755 +--- /dev/null ++++ bootstrap +@@ -0,0 +1,3 @@ ++pip install --user python-amazon-simple-product-api django ++python manage.py migrate ++python manage.py makemigrations books diff --git a/test/commit/commit_diff3.expect b/test/commit/commit_diff3.expect new file mode 100644 index 0000000000000000000000000000000000000000..cdc0a2f29ecd62eb850ffcd0fd61f47d510bda11 --- /dev/null +++ b/test/commit/commit_diff3.expect @@ -0,0 +1,35 @@ +diff --git books/models.py books/models.py +--- books/models.py ++++ books/models.py +@@ -24,20 +24,26 @@ class BookManager(models.Manager): + eisbn = product.eisbn, + author = product.author, + title = product.title, +- edition = product.edition ++ edition = product.edition, + ) ++ if product.cover_url is not '': ++ cover_img_bin = urllib.urlopen(product.cover_url) ++ cover_img_file = Image.open(io.BytesIO(cover_img_bin.read())) ++ book.cover_img.save("cover.jpg", cover_img_file) + return book + ++def upload_path(book, filename): ++ return 'covers/%s/%s' % (book.isbn, filename) ++ + class Book(models.Model): + isbn = models.CharField(max_length=10, unique=True) +- eisbn = models.CharField(max_length=13, blank=True) ++ eisbn = models.CharField(max_length=13, blank=True, null=True) + title = models.CharField(max_length=200) + author = models.CharField(max_length=200) +- edition = models.CharField(max_length=200, blank=True) +- cover = models.ImageField(upload_to='covers', blank=True) ++ edition = models.CharField(max_length=200, blank=True, null=True) ++ cover_img = models.ImageField(upload_to=upload_path) + def __unicode__(self): + return u'[%s] "%s" by %s' % (self.isbn, self.title, self.author,) +- + objects = BookManager() + + diff --git a/test/test.config b/test/test.config index 2ad3ab9420606fc10271001c474fa76f6b72539e..2cbd58ee47ea494d89f487fb3904d6ba057543d8 100644 --- a/test/test.config +++ b/test/test.config @@ -7,5 +7,6 @@ declare -A test_scripts=( [ignoreFile.vader]='bootstrap' [addDir.vader]='newdir\/' [jump.vader]='books\/models.py|27|60|books\/isbn_search.py|54' + [commit.vader]='books/models.py|bootstrap' #[addSubmodule.vader]='subdjooks' )