]> Sergey Matveev's repositories - dotfiles.git/blobdiff - vim/.vim/autoload/python/testname.vim
Vim scripts refactoring
[dotfiles.git] / vim / .vim / autoload / python / testname.vim
diff --git a/vim/.vim/autoload/python/testname.vim b/vim/.vim/autoload/python/testname.vim
new file mode 100644 (file)
index 0000000..9cc598b
--- /dev/null
@@ -0,0 +1,22 @@
+" Nose-compatible test name preparer
+" Maintainer: Sergey Matveev <stargrave@stargrave.org>
+" License: GNU General Public License version 3 of the License or later
+"
+" When standing inside TestCase's test method, type <leader>t and full
+" Python (your.project.tests:TestCaseName.test_method_name) path will be
+" copied to clipboard ("*) register.
+
+function! python#testname#get() abort
+    normal mm
+    normal ?.*\s*def .*[Tt]est\r
+    normal ^f(Byw
+    let postfix = @"
+    normal [[f(Byw
+    let postfix = @" . "." . postfix
+    normal `m
+    let base = join([""] + split(getcwd(), "/")[:-1], "/")
+    let prefix = substitute(expand("%:p:r")[len(base)+1:], "/", ".", "g")
+    let name = prefix . ":" . postfix
+    let @* = name
+    echomsg name
+endfunction