Module tests.AwsResourceStartStopTest
AwsEc2StartStopTest module.
Copyright: ycookjp
Note
RDSのAWS clientのモックは、RDSのインスタンス1つしかサポートしないため、 テストでは有効なインスタンスが常に1つであるようにシナリオを構成している。
Classes
class AwsEc2InstanceOperatorTest (methodName='runTest')-
aws_resource_start_stop モジュール用のテストクラス
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()-
テストクラスの set up を実行します。
Args
cls- テストクラスのインスタンス
def tearDownClass()-
テストクラスの tear down を実行します。
Args
cls- テストクラスのインスタンス
Methods
def setUp(self)-
テスト関数の set up を実行します。
def tearDown(self)-
テストクラスの tear down を実行します。
def test01_ng_event_start_stop_aws_resources(self)-
configKeyにtest01_ngを設定して、start_stop_aws_resources関数のテストを実行します。
テストの内容は、以下のとおりです。
- 設定ファイルに、EC2インスタンスとDBクラスターが実行中のインスタンス
IDと存在しないインスタンスIDが設定されている状態で、イベントに
test01_ngの停止を指定して、start_stop_aws_resources関数を実行する。
- => 例外が発生すること。
- => EC2インスタンスが停止していること。
- => RDS DB Clusterが停止していること。
- 設定ファイルに、EC2インスタンスとDBクラスターが停止中のインスタンス
IDと存在しないインスタンスIDが設定されている状態で、イベントに
test01_ngの開始を指定して、start_stop_aws_resources関数を実行する。
- => 例外が発生すること。
- => EC2インスタンスが開始していること。
- => RDS DB Clusterが開始していること。
- 設定ファイルに、EC2インスタンスとDBクラスターが実行中のインスタンス
IDと存在しないインスタンスIDが設定されている状態で、イベントに
test01_ngの停止を指定して、start_stop_aws_resources関数を実行する。
def test01_ok_event_start_stop_aws_resources(self)-
configKeyにtest01_okを設定して、start_stop_aws_resources関数のテストを実行します。
テストの内容は、以下のとおりです。
- EC2インスタンスとDBCクラスターが実行中の状態で、イベントにtest01_okの
停止を指定して、start_stop_aws_resources関数を実行する。
- => EC2インスタンスが停止していること。
- => RDS DB Clusterが停止していること。
- EC2インスタンスとDBCクラスターが停止中の状態で、イベントにtest01_okの
開始を指定して、start_stop_aws_resources関数を実行する。
- => EC2インスタンスが開始していること。
- => RDS DB Clusterが開始していること。
- EC2インスタンスとDBCクラスターが実行中の状態で、イベントにtest01_okの
停止を指定して、start_stop_aws_resources関数を実行する。
def test02_ng_event_start_stop_aws_resources(self)-
configKeyにtest02_okを設定して、start_stop_aws_resources関数のテストを実行します。
テストの内容は、以下のとおりです。
- 設定ファイルに、EC2インスタンスとDBインスタンスが実行中のインスタンス
IDと存在しないインスタンスIDが設定されている状態で、コンテキストの
Lambda関数名に「ec2_stop_test02_ok」を指定して、
start_stop_aws_resources関数を実行する。
- => 例外が発生すること。
- => EC2インスタンスが停止していること。
- => RDS DB Clusterが停止していること。
- 設定ファイルに、EC2インスタンスとDBインスタンスが停止中のインスタンス
IDと存在しないインスタンスIDが設定されている状態で、コンテキストの
Lambda関数名に「ec2_stop_test02_ok」を指定して、
start_stop_aws_resources関数を実行する。
- => 例外が発生すること。
- => EC2インスタンスが開始していること。
- => RDS DB Clusterが開始していること。
- 設定ファイルに、EC2インスタンスとDBインスタンスが実行中のインスタンス
IDと存在しないインスタンスIDが設定されている状態で、コンテキストの
Lambda関数名に「ec2_stop_test02_ok」を指定して、
start_stop_aws_resources関数を実行する。
def test02_ok_event_start_stop_aws_resources(self)-
configKeyにtest02_okを設定して、start_stop_aws_resources関数のテストを実行します。
テストの内容は、以下のとおりです。
- EC2インスタンスとDBCインスタンスが実行中の状態で、コンテキストの
Lambda関数名に「ec2_stop_test02_ok」を指定して、
start_stop_aws_resources関数を実行する。
- => EC2インスタンスが停止していること。
- => RDS DB Clusterが停止していること。
- EC2インスタンスとDBCインスタンスが停止中の状態で、コンテキストの
Lambda関数名に「ec2_stop_test02_ok」を指定して、
start_stop_aws_resources関数を実行する。
- => EC2インスタンスが開始していること。
- => RDS DB Clusterが開始していること。
- EC2インスタンスとDBCインスタンスが実行中の状態で、コンテキストの
Lambda関数名に「ec2_stop_test02_ok」を指定して、
start_stop_aws_resources関数を実行する。
def test_error_load_config(self)-
_load_config 関数のエラーが発生する場合のテストを実行します。
- 設定ファイルに存在しないキー名を指定するとエラーとなること
def test_event_list_start_stop_aws_resources(self)-
start_stop_aws_resources関数にconfigKeyのリストを渡して関数を実行します。
start_stop_aws_resources関数を以下の用にして実行し、2つのconfigKeyに 設定されたEC2、DBインスタンスが停止、開始できることを確認します。
- 以下の構成の設定ファイルを使用する
- test01_okのEC2、test02_okのDBインスタンスを起動状態にする
-
configKeyのリスト [test01_ok、test02_ok] をstart_stop_aws_resources 関数に渡して関数を実行する
test01_ok: - type: ec2.instance ids: - i-xxxxxxxxxxxxxxxxx - type: rds.db_cluster ids: - myrds_cluster01 test02_ok: - type: ec2.instance ids: - i-xxxxxxxxxxxxxxxxx - i-yyyyyyyyyyyyyyyyy - type: rds.db_instance ids: - myrds_instance01- => DB Clusterの停止失敗の例外が発生すること。
- => EC2インスタンスが1台停止していること
- => RDS DB Instanceが停止していること。
- EC2インスタンスとDBインスタンスが停止している状態で、configKeyのリスト [test01_ok、test02_ok] をstart_stop_aws_resources関数に渡して インスタンスを開始する。
- => EC2インスタンスの開始失敗の例外が発生すること。
- => EC2インスタンスの開始失敗の例外が発生すること。
- => RDS DB Instanceが開始していること。
def test_get_action_from_context(self)-
_get_action_from_context 関数をテストします。
-
contextオブジェクトのfunction_nameプロパティに'ec2_start_test01_ok' を指定すると、'start'が返される
-
contextオブジェクトのfunction_nameプロパティに 'ec2_stop_resources_test_ok' を指定すると、'stop'が返される
-
def test_get_action_from_event(self)-
_get_action_from_event 関数をテストします。
-
event dictionary のキー:action の値 に 'start' を指定すると、 'start'が返される
-
event dictionary のキー:action の値に 'stop' を指定すると、 'stop'が返される
-
def test_get_configkey_from_context(self)-
_get_configkey_from_context 関数をテストします。
-
contextオブジェクトのfunction_nameプロパティに 'ec2_start_resources01' を指定すると、'resources01'が返される
-
contextオブジェクトのfunction_nameプロパティに'ec2_start_test01_ok' を指定すると、'test01_ok'が返される
-
def test_get_configkey_from_event(self)-
_get_configkey_from_event 関数をテストします。
-
event dictionary の キー:configKey の値に 'resources01' を 設定すると、'resources01'が返される
-
event dictionary の キー:configKey の値に 'test01_ok' を 指定すると、'test01_ok'が返される
-
def test_load_config(self)-
_load_config 関数のテストを実行します。
-
設定ファイルのキーを指定して読み込んだ AwsResourceStartStopConfig オブジェクトの内容が設定ファイルの内容と一致すること
-
設定ファイルのキー配列を指定して読み込んだ AwsResourceStartStopConfig オブジェクトの内容が設定ファイルの内容と一致すること
-
class MyContext-
テスト用の context オブジェクト
Class variables
var function_name-
The type of the None singleton.