def test_validation(stc, tmpdir): global PKG, COMMAND, COMMAND_NAME, TEST_DB_FILE # FIXME: Do the various checks to ensure the db file's result are properly # loaded into the JSON string template_file = os.path.join(str(tmpdir), 'template.xml') create_template_file(template_file) ChartTemplateJsonFileName = template_file Title = "Test Chart" XAxisTitle = "Time" XAxisCategories = ["1t", "2t", "3t"] YAxisTitle = "Routes" YAxisCategories = ["a", "b", "c"] Series = ["Select TotalFrameCount from AnalyzerPortResults"] TemplateModifier = "{\"yAxis\": {\"title\": {\"text\": \"Modified Label\"}}}" SrcDatabase = "LAST_ITERATION" ReportGroup = "LEVEL_1" assert export_to_json.validate(ChartTemplateJsonFileName, Title, XAxisTitle, XAxisCategories, YAxisTitle, YAxisCategories, Series, TemplateModifier, SrcDatabase, ReportGroup) == "" assert export_to_json.validate(ChartTemplateJsonFileName, "", "", [], "", [], Series, "", SrcDatabase, ReportGroup) == "" assert "Invalid Chart Template" in \ export_to_json.validate("", Title, XAxisTitle, XAxisCategories, YAxisTitle, YAxisCategories, Series, TemplateModifier, SrcDatabase, ReportGroup) assert "1 is not of type u'string'" in \ export_to_json.validate(ChartTemplateJsonFileName, 1, XAxisTitle, XAxisCategories, YAxisTitle, YAxisCategories, Series, TemplateModifier, SrcDatabase, ReportGroup) assert "Invalid Chart Template: """ in \ export_to_json.validate("", Title, XAxisTitle, XAxisCategories, YAxisTitle, YAxisCategories, Series, TemplateModifier, SrcDatabase, ReportGroup) assert "[1, 2] is not of type u'string'" in \ export_to_json.validate(ChartTemplateJsonFileName, Title, [1, 2], XAxisCategories, YAxisTitle, YAxisCategories, Series, TemplateModifier, SrcDatabase, ReportGroup) assert "1 is not of type u'array'" in \ export_to_json.validate(ChartTemplateJsonFileName, Title, XAxisTitle, 1, YAxisTitle, YAxisCategories, Series, TemplateModifier, SrcDatabase, ReportGroup) assert "1 is not of type u'string'" in \ export_to_json.validate(ChartTemplateJsonFileName, Title, XAxisTitle, XAxisCategories, 1, YAxisCategories, Series, TemplateModifier, SrcDatabase, ReportGroup) assert "1 is not of type u'array'" in \ export_to_json.validate(ChartTemplateJsonFileName, Title, XAxisTitle, XAxisCategories, YAxisTitle, 1, Series, TemplateModifier, SrcDatabase, ReportGroup) assert "1 is not of type u'array'" in \ export_to_json.validate(ChartTemplateJsonFileName, Title, XAxisTitle, XAxisCategories, YAxisTitle, YAxisCategories, 1, TemplateModifier, SrcDatabase, ReportGroup) assert "Invalid Series specified: []" in \ export_to_json.validate(ChartTemplateJsonFileName, Title, XAxisTitle, XAxisCategories, YAxisTitle, YAxisCategories, [], TemplateModifier, SrcDatabase, ReportGroup) assert "Type Error: expected string or buffer" in \ export_to_json.validate(ChartTemplateJsonFileName, Title, XAxisTitle, XAxisCategories, YAxisTitle, YAxisCategories, Series, [1], SrcDatabase, ReportGroup) assert "Empty SrcDatabase property is not allowed" in \ export_to_json.validate(ChartTemplateJsonFileName, Title, XAxisTitle, XAxisCategories, YAxisTitle, YAxisCategories, Series, TemplateModifier, "", ReportGroup) assert "Empty ReportGroup property is not allowed" in \ export_to_json.validate(ChartTemplateJsonFileName, Title, XAxisTitle, XAxisCategories, YAxisTitle, YAxisCategories, Series, TemplateModifier, SrcDatabase, "") # Test for invalid SrcDatabase and ReportGroup enums fail_msg = '' with AutoCommand('.'.join([PKG, COMMAND_NAME])) as cmd: try: cmd.Set('SrcDatabase', 'invalid') except RuntimeError as e: fail_msg = str(e) assert 'CStcInvalidArgument Invalid enum value' in fail_msg fail_msg = '' with AutoCommand('.'.join([PKG, COMMAND_NAME])) as cmd: try: cmd.Set('ReportGroup', 'invalid') except RuntimeError as e: fail_msg = str(e) assert 'CStcInvalidArgument Invalid enum value' in fail_msg