1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-06 11:50:51 -08:00

Fix triple-quoting electricity in python-mode

* lisp/progmodes/python.el (python-electric-pair-string-delimiter): Fix
triple-quoting electricity. 

* test/automated/python-tests.el (python-triple-quote-pairing): New test.
(python-syntax-after-python-backspace): New test.

Fixes: debbugs:17192
This commit is contained in:
João Távora 2014-04-07 00:23:45 +01:00
parent 89f20f76d8
commit 7aecc2f6ca
4 changed files with 53 additions and 3 deletions

View file

@ -134,6 +134,16 @@ aliqua."
;;; Font-lock and syntax
(ert-deftest python-syntax-after-python-backspace ()
;; `python-indent-dedent-line-backspace' garbles syntax
:expected-result :failed
(python-tests-with-temp-buffer
"\"\"\""
(goto-char (point-max))
(python-indent-dedent-line-backspace 1)
(should (string= (buffer-string) "\"\""))
(should (null (nth 3 (syntax-ppss))))))
;;; Indentation
@ -2696,6 +2706,9 @@ def foo(a, b, c):
(equal (symbol-value (car ccons)) (cdr ccons)))))
(kill-buffer buffer)))
;;; Electricity
(ert-deftest python-util-forward-comment-1 ()
(python-tests-with-temp-buffer
(concat
@ -2708,6 +2721,32 @@ def foo(a, b, c):
(python-util-forward-comment -1)
(should (= (point) (point-min)))))
(ert-deftest python-triple-quote-pairing ()
(python-tests-with-temp-buffer
"\"\"\n"
(goto-char (1- (point-max)))
(let ((last-command-event ?\"))
(call-interactively 'self-insert-command))
(should (string= (buffer-string)
"\"\"\"\"\"\"\n"))
(should (= (point) 4)))
(python-tests-with-temp-buffer
"\n"
(let ((last-command-event ?\"))
(dotimes (i 3)
(call-interactively 'self-insert-command)))
(should (string= (buffer-string)
"\"\"\"\"\"\"\n"))
(should (= (point) 4)))
(python-tests-with-temp-buffer
"\"\n\"\"\n"
(goto-char (1- (point-max)))
(let ((last-command-event ?\"))
(call-interactively 'self-insert-command))
(should (= (point) (1- (point-max))))
(should (string= (buffer-string)
"\"\n\"\"\"\n"))))
(provide 'python-tests)