示例#1
0
    def __init__(self, avs_name, main_hash, extra_hash_table={}):
        '''Parameters:

        avs_name: pathname of script to open
        main_hash: expected hashsum of main output
        extra_hash_table: 
        '''
        if not isinstance(avs_name, str):
            raise ValueError('avs_name must be a str')
        elif not isinstance(main_hash, str):
            raise ValueError('main_hash must be a str')
        elif not isinstance(extra_hash_table, dict):
            raise ValueError('extra_hash_table must be a dict')

        self.avs_name = avs_name
        self.main_hash = main_hash
        self.extra_hash_table = extra_hash_table

        self.frameserver = AvxFrameServer(self.avs_name,
                                          self.extra_hash_table.keys())
        self.results = [None, {}]
        self.complete = False
示例#2
0
    def __init__(self, avs_name, main_hash, extra_hash_table={}):
        '''Parameters:

        avs_name: pathname of script to open
        main_hash: expected hashsum of main output
        extra_hash_table: 
        '''
        if not isinstance(avs_name, str):
            raise ValueError('avs_name must be a str')
        elif not isinstance(main_hash, str):
            raise ValueError('main_hash must be a str')
        elif not isinstance(extra_hash_table, dict):
            raise ValueError('extra_hash_table must be a dict')
        
        self.avs_name = avs_name
        self.main_hash = main_hash
        self.extra_hash_table = extra_hash_table

        self.frameserver = AvxFrameServer(self.avs_name,
                                          self.extra_hash_table.keys())
        self.results = [None, {}]
        self.complete = False
示例#3
0
class AvxUnitTest(object):
    '''AvxUnitTest:

    Controls evaluation of a test script and compares output to reference
    '''
    def __init__(self, avs_name, main_hash, extra_hash_table={}):
        '''Parameters:

        avs_name: pathname of script to open
        main_hash: expected hashsum of main output
        extra_hash_table: 
        '''
        if not isinstance(avs_name, str):
            raise ValueError('avs_name must be a str')
        elif not isinstance(main_hash, str):
            raise ValueError('main_hash must be a str')
        elif not isinstance(extra_hash_table, dict):
            raise ValueError('extra_hash_table must be a dict')

        self.avs_name = avs_name
        self.main_hash = main_hash
        self.extra_hash_table = extra_hash_table

        self.frameserver = AvxFrameServer(self.avs_name,
                                          self.extra_hash_table.keys())
        self.results = [None, {}]
        self.complete = False

    def run(self):
        '''Evalute script.  Check the status of self.complete first.'''
        self.frameserver.run()
        self.results = self.frameserver.query_results()
        self.complete = True

    def check_results(self):
        '''Checks results against main_hash and extra_hash_table.  Returns a
        list of all files with non-matching hashes.  Check the status of
        self.complete first.'''
        if not self.complete:
            raise AvxNotReadyError('unit test has not yet executed')
        not_valid_files = []
        # Results format: [main_hash, {extra_file_1:extra_hash_1, ...}]
        if self.main_hash != self.results[0]:
            not_valid_files.append('AVX_FRAMESERVER_OUTPUT')
        for i in self.extra_hash_table:
            if self.extra_hash_table[i] != self.results[1][i]:
                not_valid_files.append(i)
        return not_valid_files

    def test_file_format(self):
        '''Returns a string suitable for writing to a test suite file.  Check
        the status of self.complete first.'''
        if not self.complete:
            raise AvxNotReadyError('unit test has not yet executed')
        # Format: SCRIPT,avs_name,hash OR extra_file_name,hash
        file_str = ['SCRIPT,"{0}",{1}'.format(self.avs_name, self.results[0])]
        for i in self.extra_hash_table:
            file_str.append('"{0}",{1}'.format(i, self.results[1][i]))
        return '\n'.join(file_str)

    def cleanup(self):
        '''Delete generated files listed in self.extra_hash_table and reset
        self.complete'''
        self.frameserver.cleanup()
        self.results = [None, {}]
        self.complete = False
示例#4
0
class AvxUnitTest(object):
    '''AvxUnitTest:

    Controls evaluation of a test script and compares output to reference
    '''
    def __init__(self, avs_name, main_hash, extra_hash_table={}):
        '''Parameters:

        avs_name: pathname of script to open
        main_hash: expected hashsum of main output
        extra_hash_table: 
        '''
        if not isinstance(avs_name, str):
            raise ValueError('avs_name must be a str')
        elif not isinstance(main_hash, str):
            raise ValueError('main_hash must be a str')
        elif not isinstance(extra_hash_table, dict):
            raise ValueError('extra_hash_table must be a dict')
        
        self.avs_name = avs_name
        self.main_hash = main_hash
        self.extra_hash_table = extra_hash_table

        self.frameserver = AvxFrameServer(self.avs_name,
                                          self.extra_hash_table.keys())
        self.results = [None, {}]
        self.complete = False

    def run(self):
        '''Evalute script.  Check the status of self.complete first.'''
        self.frameserver.run()
        self.results = self.frameserver.query_results()
        self.complete = True

    def check_results(self):
        '''Checks results against main_hash and extra_hash_table.  Returns a
        list of all files with non-matching hashes.  Check the status of
        self.complete first.'''        
        if not self.complete:
            raise AvxNotReadyError('unit test has not yet executed')
        not_valid_files = []
        # Results format: [main_hash, {extra_file_1:extra_hash_1, ...}]
        if self.main_hash != self.results[0]:
            not_valid_files.append('AVX_FRAMESERVER_OUTPUT')
        for i in self.extra_hash_table:
            if self.extra_hash_table[i] != self.results[1][i]:
                not_valid_files.append(i)
        return not_valid_files

    def test_file_format(self):
        '''Returns a string suitable for writing to a test suite file.  Check
        the status of self.complete first.'''
        if not self.complete:
            raise AvxNotReadyError('unit test has not yet executed')
        # Format: SCRIPT,avs_name,hash OR extra_file_name,hash
        file_str = ['SCRIPT,"{0}",{1}'.format(self.avs_name, self.results[0])]
        for i in self.extra_hash_table:
            file_str.append('"{0}",{1}'.format(i, self.results[1][i]))
        return '\n'.join(file_str)

    def cleanup(self):
        '''Delete generated files listed in self.extra_hash_table and reset
        self.complete'''
        self.frameserver.cleanup()
        self.results = [None, {}]
        self.complete = False