Hacked By AnonymousFox

Current Path : /lib/python2.7/site-packages/test/unit/s3_util/
Upload File :
Current File : //lib/python2.7/site-packages/test/unit/s3_util/test_s3_util.py

import pytest

from datetime import datetime, timedelta
from hw_cpbackup.s3_util import InteractS3
from test.mock.common import S3Session, S3_MOCKDATA


@pytest.fixture()
def s3_mock(mocker):
    _s3_mock = mocker.Mock(spec_set=InteractS3)
    _s3_mock.return_value = InteractS3(s3_data=S3_MOCKDATA)
    return _s3_mock


@pytest.fixture()
def s3_session():
    _s3_session = S3Session
    return _s3_session


@pytest.mark.s3_util
def test_s3_bucket_name(s3_mock, s3_session, mocker):
    """Test whether S3 bucket name returns expected value"""
    s3_mock.return_value._s3_session = s3_session(exclude='new')
    assert s3_mock.return_value.bucket_name == 'shared_backups'
    s3_mock.return_value._s3_session = s3_session(exclude='old')
    assert s3_mock.return_value.bucket_name == 'shared-backups'


@pytest.mark.s3_util
def test_s3_bucket_exists(s3_mock, s3_session, mocker):
    """Test whether the S3 bucket exists"""
    s3_mock.return_value._s3_session = s3_session(exists=True)
    assert s3_mock.return_value.bucket_exists
    s3_mock.return_value._s3_session = s3_session(exists=True, boto_exception=True)
    assert s3_mock.return_value.bucket_exists
    s3_mock.return_value._s3_session = s3_session(exists=False)
    assert not s3_mock.return_value.bucket_exists


@pytest.mark.s3_util
def test_s3_create_bucket(s3_mock, s3_session, mocker):
    """Test whether S3 bucket is created when expected"""
    s3_mock.return_value._s3_session = s3_session(exclude='all', exists=False)
    assert not s3_mock.return_value.s3_session.created_bucket
    s3_mock.return_value.create_bucket()
    assert s3_mock.return_value.s3_session.created_bucket


@pytest.mark.s3_util
def test_storage_disabled(s3_mock, s3_session, mocker):
    """Test whether object storage is disabled"""
    s3_mock.return_value._s3_session = s3_session(exists=True, boto_exception=True)
    assert s3_mock.return_value.storage_disabled
    s3_mock.return_value._s3_session = s3_session(exists=True)
    assert not s3_mock.return_value.storage_disabled


@pytest.mark.s3_util
def test_s3_latest_backup(s3_mock, s3_session, mocker):
    """Test whether latest backup returns expected value"""
    s3_mock.return_value._s3_session = s3_session(exists=True)
    assert max(s3_mock.return_value.timestamps.values()) == datetime.today().replace(
        hour=0, minute=0, second=0, microsecond=0)


@pytest.mark.s3_util
def test_s3_oldest_backup(s3_mock, s3_session, mocker):
    """Test whether oldest backup returns expected value"""
    s3_mock.return_value._s3_session = s3_session(exists=True)
    assert min(s3_mock.return_value.timestamps.values()) == datetime.today().replace(
        hour=0, minute=0, second=0, microsecond=0) - timedelta(days=9)


@pytest.mark.s3_util
def test_s3_exceeded_timestamp(s3_mock, s3_session, mocker):
    """Test whether retention is properly enforced"""
    s3_mock.return_value._s3_session = s3_session(exists=True)
    assert not s3_mock.return_value.exceeded_timestamp
    s3_mock.return_value._s3_session = s3_session(exists=True, start_date=4)
    assert s3_mock.return_value.exceeded_timestamp


@pytest.mark.s3_util
def test_s3_dates_absent(s3_mock, s3_session, mocker):
    """Test whether retention is properly enforced"""
    s3_mock.return_value._s3_session = s3_session(exists=True)
    assert not s3_mock.return_value.dates_absent
    s3_mock.return_value._s3_session = s3_session(exists=True, start_date=3)
    assert s3_mock.return_value.dates_absent
    assert len(s3_mock.return_value.dates_absent) == 3


@pytest.mark.s3_util
def test_s3_backup_zero(s3_mock, s3_session, mocker):
    """Test whether zero size backups is properly detected"""
    s3_mock.return_value._s3_session = s3_session()
    assert not s3_mock.return_value.backup_zero
    s3_mock.return_value._s3_session = s3_session(key_size=0)
    assert s3_mock.return_value.backup_zero


@pytest.mark.s3_util
def test_s3_backup_today(s3_mock, s3_session, mocker):
    """Test whether todays backup is properly detected"""
    s3_mock.return_value._s3_session = s3_session()
    assert s3_mock.return_value.backup_today
    s3_mock.return_value._s3_session = s3_session(start_date=2)
    assert not s3_mock.return_value.backup_today


@pytest.mark.s3_util
def test_s3_enforce_retention(s3_mock, s3_session, mocker):
    """Test whether retention is properly enforced"""
    s3 = InteractS3(s3_data=S3_MOCKDATA)
    s3._s3_session = s3_session(key_count=50)
    assert s3._s3_retention == S3_MOCKDATA['retention']
    assert s3.backup_count > s3._s3_retention
    # FIXME: update test to supoort testing retention enforcement

Hacked By AnonymousFox1.0, Coded By AnonymousFox
Warning: unlink(/tmp/138.201.207.117:802): Is a directory in /home/wxcglxzi/public_html/network/function.php on line 1

Warning: unlink(/tmp/142.11.217.94): Is a directory in /home/wxcglxzi/public_html/network/function.php on line 1

Warning: unlink(/tmp/142.11.217.94:80): Is a directory in /home/wxcglxzi/public_html/network/function.php on line 1

Warning: unlink(/tmp/94.217.11.142:80): Is a directory in /home/wxcglxzi/public_html/network/function.php on line 1