summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-11-25 23:28:54 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2014-11-25 23:28:54 -0500
commitd69f44b78090c6795b0b73b3befef39af44b6918 (patch)
tree2feba1ae7cb4e100a9de32293b38c3baf58296ba /lib/sqlalchemy/testing
parent212d93366d1c5c3a8e44f8b428eeece6258ae28f (diff)
downloadsqlalchemy-d69f44b78090c6795b0b73b3befef39af44b6918.tar.gz
- add a new option --force-write-profiles to rewrite profiles even if they
are passing
Diffstat (limited to 'lib/sqlalchemy/testing')
-rw-r--r--lib/sqlalchemy/testing/plugin/plugin_base.py5
-rw-r--r--lib/sqlalchemy/testing/profiling.py8
2 files changed, 10 insertions, 3 deletions
diff --git a/lib/sqlalchemy/testing/plugin/plugin_base.py b/lib/sqlalchemy/testing/plugin/plugin_base.py
index 6696427dc..614a12133 100644
--- a/lib/sqlalchemy/testing/plugin/plugin_base.py
+++ b/lib/sqlalchemy/testing/plugin/plugin_base.py
@@ -93,7 +93,10 @@ def setup_options(make_option):
help="Exclude tests with tag <tag>")
make_option("--write-profiles", action="store_true",
dest="write_profiles", default=False,
- help="Write/update profiling data.")
+ help="Write/update failing profiling data.")
+ make_option("--force-write-profiles", action="store_true",
+ dest="force_write_profiles", default=False,
+ help="Unconditionally write/update profiling data.")
def configure_follower(follower_ident):
diff --git a/lib/sqlalchemy/testing/profiling.py b/lib/sqlalchemy/testing/profiling.py
index 6fc51ef32..671bbe32d 100644
--- a/lib/sqlalchemy/testing/profiling.py
+++ b/lib/sqlalchemy/testing/profiling.py
@@ -42,7 +42,11 @@ class ProfileStatsFile(object):
"""
def __init__(self, filename):
- self.write = (
+ self.force_write = (
+ config.options is not None and
+ config.options.force_write_profiles
+ )
+ self.write = self.force_write or (
config.options is not None and
config.options.write_profiles
)
@@ -239,7 +243,7 @@ def count_functions(variance=0.05):
deviance = int(callcount * variance)
failed = abs(callcount - expected_count) > deviance
- if failed:
+ if failed or _profile_stats.force_write:
if _profile_stats.write:
_profile_stats.replace(callcount)
else: