#!/usr/bin/env python # -*- coding: utf-8 -*- # This work was created by participants in the DataONE project, and is # jointly copyrighted by participating institutions in DataONE. For # more information on DataONE, see our web site at http://dataone.org. # # Copyright 2011 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ''' Module d1_integration.test_all ============================== Run all integration tests using the unit test framework. :Created: 2011-04-22 :Author: DataONE (dahl) :Dependencies: - python 2.6 ''' # Std. import os import sys import logging import unittest import json # App. import test_utilities from d1_common import xmlrunner from d1_common import svnrevision import context sys.path.append('../client') # Tier 1 # MN_core.ping() # MN_core.getLogRecords() # MN_core.getObjectStatistics() # MN_core.getOperationStatistics() # MN_core.getStatus() # MN_core.getCapabilities() # # MN_read.get() # MN_read.getSystemMetadata() # MN_read.describe() # MN_read.getChecksum() # MN_read.listObjects() # MN_read.synchronizationFailed() from tier_1_mn_core_ping import Test010Ping from tier_1_mn_core_getstatus import Test015GetStatus from tier_1_mn_core_getcapabilities import Test020GetCapabilities from tier_1_mn_core_getobjectstatistics import Test025GetObjectStatistics from tier_1_mn_core_getoperationstatistics import Test026GetOperationStatistics from tier_1_mn_read_listobjects import Test030ListObjects from tier_1_mn_core_getlogrecords import Test040GetLogRecords from tier_1_mn_read_get import Test050Get from tier_1_mn_read_describe import Test060Describe from tier_1_mn_read_getchecksum import Test070GetChecksum from tier_1_mn_read_getsystemmetadata import Test080GetSystemMetadata #from tier_1_mn_read_synchronizationfailed import TestSynchronizationFailed # Tier 2 # Tier 3 #from tier_3_mn_storage_create.py import TestCreate #from tier_3_mn_storage_update.py import TestUpdate # Tier 4 def run_tests(node): '''Run all tests for one node. ''' context.TOKEN = '' context.node = node argv = sys.argv if "--debug" in argv: logging.basicConfig(level=logging.DEBUG) argv.remove("--debug") suite = unittest.TestLoader().loadTestsFromNames( [os.path.splitext(os.path.basename(__file__))[0]]) if "--with-xunit" in argv: argv.remove("--with-xunit") xmlrunner.XmlTestRunner(sys.stdout).run(suite) else: unittest.TextTestRunner(verbosity=2).run(suite) def main(): '''Run all tests for each node in the nodes list. ''' nodes_path = test_utilities.get_resource_path('nodes.json') with open(nodes_path) as nodes_file: nodes = json.load(nodes_file) context.nodes = nodes for node, val in nodes['mn'].items(): if node != 'local_gmn_1': continue run_tests(val) if __name__ == "__main__": main()