]> git.eshelyaron.com Git - emacs.git/commitdiff
Improve Python triple-quote pairing tests for electric-pair-mode scratch/electric-pair-cleanup-and-49518-bugfix
authorJoão Távora <joaotavora@gmail.com>
Mon, 20 Sep 2021 10:55:41 +0000 (11:55 +0100)
committerJoão Távora <joaotavora@gmail.com>
Mon, 20 Sep 2021 10:57:07 +0000 (11:57 +0100)
These tests were once passing incorrectly, i.e. the auto-pairing
functionality they purport to guard wasn't really working.  Added a
new test in hopes that regressions can be spotted in the future for
the now-working functionality of Python triple-quote auto-pairing via
electric-pair-mode.

bug#49518

* test/lisp/progmodes/python-tests.el
(python-triple-double-quote-pairing): Rename from
python-triple-quote-pairing.
(python-triple-single-quote-pairing): New test.

test/lisp/progmodes/python-tests.el

index a172f0f8e9c353b9f8cfdd2332b3eaf72936c4eb..6ab9c62746e840b5f517c53a4cd14117d22673e5 100644 (file)
@@ -5282,7 +5282,7 @@ urlpatterns = patterns('',
            (should (= (current-indentation) 23))))
       (or eim (electric-indent-mode -1)))))
 
-(ert-deftest python-triple-quote-pairing ()
+(ert-deftest python-triple-double-quote-pairing ()
   (let ((epm electric-pair-mode))
     (unwind-protect
         (progn
@@ -5309,6 +5309,33 @@ urlpatterns = patterns('',
                             "\"\n\"\"\"\n"))))
       (or epm (electric-pair-mode -1)))))
 
+(ert-deftest python-triple-single-quote-pairing ()
+  (let ((epm electric-pair-mode))
+    (unwind-protect
+        (progn
+          (python-tests-with-temp-buffer
+           "''\n"
+           (or epm (electric-pair-mode 1))
+           (goto-char (1- (point-max)))
+           (python-tests-self-insert ?')
+           (should (string= (buffer-string)
+                            "''''''\n"))
+           (should (= (point) 4)))
+          (python-tests-with-temp-buffer
+           "\n"
+           (python-tests-self-insert (list ?' ?' ?'))
+           (should (string= (buffer-string)
+                            "''''''\n"))
+           (should (= (point) 4)))
+          (python-tests-with-temp-buffer
+           "'\n''\n"
+           (goto-char (1- (point-max)))
+           (python-tests-self-insert ?')
+           (should (= (point) (1- (point-max))))
+           (should (string= (buffer-string)
+                            "'\n'''\n"))))
+      (or epm (electric-pair-mode -1)))))
+
 \f
 ;;; Hideshow support