예제 #1
0
def test_egg_release_file_read_and_written_no_read(archive, remove):
    '''
    Verify that when the egg release file cannot be read,
    a blank string is written to the archive
    '''
    if six.PY3:
        open_name = 'builtins.open'
    else:
        open_name = '__builtin__.open'

    remove.side_effect = OSError('test')

    with patch(open_name, create=True) as mock_open:
        mock_open.side_effect = IOError('test')
        c = InsightsConfig()
        d = DataCollector(c)
        d._write_egg_release()
        remove.assert_called_once_with(constants.egg_release_file)
        d.archive.add_metadata_to_archive.assert_called_once_with(
            '', '/egg_release')
def test_egg_release_file_read_memory_error(archive, remove):
    '''
    Verify that a memory error on the egg release file read is not
    fatal.
    '''
    if six.PY3:
        open_name = 'builtins.open'
    else:
        open_name = '__builtin__.open'

    with patch(open_name, create=True) as mock_open:
        file_mock = mock.mock_open().return_value
        file_mock.read.side_effect = MemoryError()
        mock_open.side_effect = [file_mock]
        c = InsightsConfig()
        d = DataCollector(c)
        d._write_egg_release()
        remove.assert_called_once_with(constants.egg_release_file)
        d.archive.add_metadata_to_archive.assert_called_once_with(
            '', '/egg_release')
예제 #3
0
def test_egg_release_file_read_and_written(archive, remove):
    '''
    Verify the egg release file is read from file and
    written to the archive
    '''
    if six.PY3:
        open_name = 'builtins.open'
    else:
        open_name = '__builtin__.open'

    with patch(open_name, create=True) as mock_open:
        mock_open.side_effect = [
            mock.mock_open(read_data='/testvalue').return_value
        ]
        c = InsightsConfig()
        d = DataCollector(c)
        d._write_egg_release()
        remove.assert_called_once_with(constants.egg_release_file)
        d.archive.add_metadata_to_archive.assert_called_once_with(
            '/testvalue', '/egg_release')
def test_egg_release_file_write_os_error(archive, remove):
    '''
    Verify that an OS Error (e.g. no space left) on the egg release file
    write is not fatal - an empty file is written instead.
    '''
    if six.PY3:
        open_name = 'builtins.open'
    else:
        open_name = '__builtin__.open'

    with patch(open_name, create=True) as mock_open:
        mock_open.side_effect = [
            mock.mock_open(read_data='/testvalue').return_value
        ]
        c = InsightsConfig()
        d = DataCollector(c)
        d._write_egg_release()
        remove.assert_called_once_with(constants.egg_release_file)
        failed_call = call('/testvalue', '/egg_release')
        rescue_call = call('', '/egg_release')
        expected_calls = [failed_call, rescue_call]
        d.archive.add_metadata_to_archive.assert_has_calls(expected_calls)