@@ -422,3 +422,64 @@ def test_rcparams_reset_after_fail():
422422 pass
423423
424424 assert mpl .rcParams ['text.usetex' ] is False
425+
426+
427+ def test_if_rctemplate_is_up_to_date ():
428+ # This tests if the matplotlibrc.template file
429+ # contains all valid rcParams.
430+ dep1 = mpl ._all_deprecated
431+ dep2 = mpl ._deprecated_set
432+ deprecated = list (dep1 .union (dep2 ))
433+ #print(deprecated)
434+ path_to_rc = mpl .matplotlib_fname ()
435+ with open (path_to_rc , "r" ) as f :
436+ rclines = f .readlines ()
437+ missing = {}
438+ for k ,v in mpl .defaultParams .items ():
439+ if k [0 ] == "_" :
440+ continue
441+ if k in deprecated :
442+ continue
443+ if "verbose" in k :
444+ continue
445+ found = False
446+ for line in rclines :
447+ if k in line :
448+ found = True
449+ if not found :
450+ missing .update ({k :v })
451+ if missing :
452+ raise ValueError ("The following params are missing " +
453+ "in the matplotlibrc.template file: {}"
454+ .format (missing .items ()))
455+
456+
457+ def test_if_rctemplate_would_be_valid (tmpdir ):
458+ # This tests if the matplotlibrc.template file would result in a valid
459+ # rc file if all lines are uncommented.
460+ path_to_rc = mpl .matplotlib_fname ()
461+ with open (path_to_rc , "r" ) as f :
462+ rclines = f .readlines ()
463+ newlines = []
464+ for line in rclines :
465+ if line [0 ] == "#" :
466+ newline = line [1 :]
467+ else :
468+ newline = line
469+ if "$TEMPLATE_BACKEND" in newline :
470+ newline = "backend : Agg"
471+ if "datapath" in newline :
472+ newline = ""
473+ newlines .append (newline )
474+ d = tmpdir .mkdir ('test1' )
475+ fname = str (d .join ('testrcvalid.temp' ))
476+ with open (fname , "w" ) as f :
477+ f .writelines (newlines )
478+ with pytest .warns (None ) as record :
479+ dic = mpl .rc_params_from_file (fname ,
480+ fail_on_error = True ,
481+ use_default_template = False )
482+ assert len (record ) == 0
483+ #d1 = set(dic.keys())
484+ #d2 = set(matplotlib.defaultParams.keys())
485+ #print(d2-d1)
0 commit comments