@@ -431,6 +431,16 @@ def test_replace(self):
431
431
values = klass (data )
432
432
pytest .raises (TypeError , values .str .replace , 'a' , repl )
433
433
434
+ # GH16808 literal replace (regex=False vs regex=True)
435
+ values = Series (['f.o' , 'foo' , NA ])
436
+ exp = Series (['bao' , 'bao' , NA ])
437
+ result = values .str .replace ('f.' , 'ba' )
438
+ tm .assert_series_equal (result , exp )
439
+
440
+ exp = Series (['bao' , 'foo' , NA ])
441
+ result = values .str .replace ('f.' , 'ba' , regex = False )
442
+ tm .assert_series_equal (result , exp )
443
+
434
444
def test_replace_callable (self ):
435
445
# GH 15055
436
446
values = Series (['fooBAD__barBAD' , NA ])
@@ -441,6 +451,8 @@ def test_replace_callable(self):
441
451
exp = Series (['foObaD__baRbaD' , NA ])
442
452
tm .assert_series_equal (result , exp )
443
453
454
+ pytest .raises (ValueError , values .str .replace , 'abc' , repl , regex = False )
455
+
444
456
# test with wrong number of arguments, raising an error
445
457
if compat .PY2 :
446
458
p_err = r'takes (no|(exactly|at (least|most)) ?\d+) arguments?'
@@ -522,6 +534,8 @@ def test_replace_compiled_regex(self):
522
534
"case and flags cannot be" ):
523
535
result = values .str .replace (pat , '' , case = True )
524
536
537
+ pytest .raises (ValueError , values .str .replace , pat , '' , regex = False )
538
+
525
539
# test with callable
526
540
values = Series (['fooBAD__barBAD' , NA ])
527
541
repl = lambda m : m .group (0 ).swapcase ()
0 commit comments