Module tests.AwsS3UploadTest

AwsS3UploadTest module.

Copyright: ycookjp

Classes

class AwsS3MoveTest (methodName='runTest')

aws_s3_upload モジュールのテストをする。

Create an instance of the class that will use the named test method when executed. Raises a ValueError if the instance does not have a method with the specified name.

Ancestors

  • unittest.case.TestCase

Static methods

def setUpClass()

テストクラス起動時の初期化をする。

def tearDownClass()

テストクラス終了時の後始末をする。 このスクリプトと同じディレクトリの下にある work ディレクトリの ファイル及びディレクトリ(do_not_commit_this_directory を除く)を 削除する。

Methods

def setUp(self)

テストメソッド起動時に実行される初期化処理。

def tearDown(self)

テストメソッド終了時に実行される終了処理。

def test_get_s3_key(self)

_get_s3_key 関数をテストする。

  • アップロード元ディレクトリのサブディレクトリに配置された各ファイルに ついて、関数の戻り値がs3パケットのフォルダ名とアップロード対象ファイル のアップロード先ディレクトリからの相対パスを'/'で連結したものと一致 することを確認する。テストは、以下のパターンについて実施する。

  • アップロード元ディレクトリ名がディレクトリ区切り文字で終わらない場合

  • アップロード元ディレクトリ名がディレクトリ区切り文字で終る場合

def test_get_s3_key_linux(self)

ファイル区切り文字が'/'の場合の _get_s3_key 関数のテストを実施する。

  • アップロード元ディレクトリ名がファイル区切り文字で終わらない場合、 正しい s3 キーを返すこと。
  • アップロード元ディレクトリ名がファイル区切り文字で終わる場合、 正しい s3 キーを返すこと。
def test_get_s3_key_win(self)

ファイル区切り文字が''の場合の _get_s3_key 関数のテストを実施する。

  • アップロード元ディレクトリ名がファイル区切り文字で終わらない場合、 正しい s3 キーを返すこと。
  • アップロード元ディレクトリ名がファイル区切り文字で終わる場合、 正しい s3 キーを返すこと。
def test_load_config(self)

_load_config 関数のテストをする。 設定ファイル(このスクリプトファイルの名前の拡張子を「.yml」に変えた ファイル)に設定された以下の項目が正しく読み込まれるとを確認する。

  • region_name
  • access_key_id
  • secret_access_key
def test_main(self)

aws_s3_upload.py をスクリプト実行するテストを実施する。

  • 4番目の引数を指定せずに main 関数を呼び出すと、アップロード元 ディレクトリ配下のサブディレクトリを含む全てのファイルがs3の バケットにアップロードされることを確認する。

    • 移動元ディレクトリの下のファイル・ディレクトリが削除されないこと
    • 移動前のアップロード元ディレクトリ配下のファイル数とS3バケットの オブジェクトの数が一致すること
  • 4番目の引数に'True'を指定しえ main 関数を呼び出すと、アップロード元 ディレクトリ配下のサブディレクトリを含む全てのファイルがs3のバケットに 移動されることを確認する。

    • 移動元ディレクトリの下にファイル・ディレクトリが存在しないこと
    • 移動前のアップロード元ディレクトリ配下のファイル数とS3バケットの オブジェクトの数が一致すること
def test_move_file(self)

アップロード元ファイルの削除を指定して、upload_file 関数を実行する。

  • アップロード元ディレクトリを指定して upload_file 関数を呼び出すと、 アップロード元ディレクトリ配下のサブディレクトリを含む全てのファイルが s3のバケットに移動されることを確認する。

    • 移動元ディレクトリの下にファイル・ディレクトリが存在しないこと
    • 移動前のアップロード元ディレクトリ配下のファイル数とS3バケットの オブジェクトの数が一致すること
  • ファイルを1つ移動する

    • コピー元ファイルが存在しないこと
    • S3バケットのオブジェクトが1つであること
def test_move_file_err(self)

アップロード元ファイルの削除を指定して、エラーが発生する状態で upload_file 関数を実行する。

  • 移動元フォルダに存在しないパスを指定してファイルを移動する

    • 例外が発生し、メッセージに「Not found」が含まれること
  • S3バケットを削除してテストする

    • 例外が発生し、メッセージに「Failed to upload」が含まれること
    • 移動元ディレクトリ配下のファイルが削除されていないこと
  • ファイルを1つ移動する

    • 例外が発生し、メッセージに「Failed to upload」が含まれること
    • コピー元ファイルが削除されていないこと
def test_upload_file(self)

アップロード元ファイルの削除を指定せずに、upload_file 関数を実行する。

  • アップロード元ディレクトリを指定して upload_file 関数を呼び出すと、 アップロード元ディレクトリ配下のサブディレクトリを含む全てのファイルが s3のバケットにアップロードされることを確認する。

    • アップロード元ディレクトリ配下のファイルが削除されていないこと
    • アップロード元ディレクトリ配下のファイル数とS3バケット内の オブジェクトの数が一致すること
  • ファイルを1つアップロードする

    • アップロード元ディレクトリ配下のファイルが削除されていないこと
    • S3バケットのオブジェクトが1つであること