Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_duplicate(self):
"""
Checking duplicates
"""
# TODO: Fix the lies with whisper.validateArchiveList() saying it returns True/False
self.assertIsNone(whisper.validateArchiveList(self.retention))
with AssertRaisesException(
whisper.InvalidConfiguration(
'A Whisper database may not be configured having two '
'archives with the same precision (archive0: (1, 60), '
'archive1: (1, 60))')):
whisper.validateArchiveList([(1, 60), (60, 60), (1, 60)])
def test_number_of_points(self):
"""
number of points
"""
whisper.validateArchiveList(self.retention)
with AssertRaisesException(
whisper.InvalidConfiguration(
"Each archive must have at least enough points to "
"consolidate to the next archive (archive1 consolidates 60 "
"of archive0's points but it has only 30 total points)")):
whisper.validateArchiveList([(1, 30), (60, 60)])
def test_timespan_coverage(self):
"""
timespan coverage
"""
whisper.validateArchiveList(self.retention)
with AssertRaisesException(
whisper.InvalidConfiguration(
'Lower precision archives must cover larger time intervals '
'than higher precision archives (archive0: 60 seconds, '
'archive1: 10 seconds)')):
whisper.validateArchiveList([(1, 60), (10, 1)])
def test_even_precision_division(self):
"""
even precision division
"""
whisper.validateArchiveList([(60, 60), (6, 60)])
with AssertRaisesException(
whisper.InvalidConfiguration(
"Higher precision archives' precision must evenly divide "
"all lower precision archives' precision (archive0: 7, "
"archive1: 60)")):
whisper.validateArchiveList([(60, 60), (7, 60)])
def test_even_precision_division(self):
"""
even precision division
"""
whisper.validateArchiveList([(60, 60), (6, 60)])
with AssertRaisesException(
whisper.InvalidConfiguration(
"Higher precision archives' precision must evenly divide "
"all lower precision archives' precision (archive0: 7, "
"archive1: 60)")):
whisper.validateArchiveList([(60, 60), (7, 60)])
retentions = options['retentions'].split(',')
archives = [Archive.fromString(s) for s in retentions]
if matchAll:
mySchema = DefaultSchema(section, archives)
elif pattern:
mySchema = PatternSchema(section, pattern, archives)
elif listName:
mySchema = ListSchema(section, listName, archives)
archiveList = [a.getTuple() for a in archives]
try:
whisper.validateArchiveList(archiveList)
schemaList.append(mySchema)
except whisper.InvalidConfiguration, e:
log.msg("Invalid schemas found in %s: %s" % (section, e))
schemaList.append(defaultSchema)
return schemaList
archives = []
section_failed = False
for retention in retentions:
try:
archives.append(whisper.parseRetentionDef(retention))
except ValueError as e:
print(
" - Error: Section '%s' contains an invalid item in its retention definition ('%s')" %
(section, retention)
)
print(" %s" % e)
section_failed = True
if not section_failed:
try:
whisper.validateArchiveList(archives)
except whisper.InvalidConfiguration as e:
print(
" - Error: Section '%s' contains an invalid retention definition ('%s')" %
(section, ','.join(retentions))
)
print(" %s" % e)
if section_failed:
errors_found += 1
else:
print(" OK")
if errors_found:
raise SystemExit("Storage-schemas configuration '%s' failed validation" % SCHEMAS_FILE)
print("Storage-schemas configuration '%s' is valid" % SCHEMAS_FILE)
def validateArchiveList(self, archiveList):
try:
whisper.validateArchiveList(archiveList)
except whisper.InvalidConfiguration as e:
raise ValueError("%s" % e)