Merge pull request #427 fix-NEWDWH2021-1681-resolve-dependencies into develop

This commit is contained in:
下田雅人 2024-08-21 16:26:24 +09:00
commit ae15dffef9
3 changed files with 57 additions and 50 deletions

View File

@ -21,25 +21,24 @@
"sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346",
"sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2" "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2"
], ],
"markers": "python_version >= '3.7'", "markers": "python_full_version >= '3.7.0'",
"version": "==24.2.0" "version": "==24.2.0"
}, },
"boto3": { "boto3": {
"hashes": [ "hashes": [
"sha256:21120d23cc37c0e80dc4f64434bc5664d2a5645dcd9bf8a8fa97ed5c82164ca0", "sha256:c2f0837a259002489e59d1c30008791e3b3bb59e30e48c64e1d2d270147a4549",
"sha256:ffe7bbb88ba81b5d54bc8fa0cfb2f3b7fe63a6cffa0f9207df2ef5c22a1c0587" "sha256:cbf197ce28f04bc1ffa1db0aa26a1903d9bfa57a490f70537932e84367cdd15b"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.8'", "version": "==1.35.2"
"version": "==1.34.159"
}, },
"botocore": { "botocore": {
"hashes": [ "hashes": [
"sha256:7633062491457419a49f5860c014251ae85689f78266a3ce020c2c8688a76b97", "sha256:92b168d8be79055bb25754aa34d699866d8aa66abc69f8ce99b0c191bd9c6e70",
"sha256:dc28806eb21e3c8d690c422530dff8b4b242ac033cbe98f160a9d37796c09cb1" "sha256:96c8eb6f0baed623a1b57ca9f24cb21d5508872cf0dfebb55527a85b6dbc76ba"
], ],
"markers": "python_version >= '3.8'", "markers": "python_version >= '3.8'",
"version": "==1.34.159" "version": "==1.35.2"
}, },
"certifi": { "certifi": {
"hashes": [ "hashes": [
@ -248,7 +247,7 @@
"sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5", "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5",
"sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0" "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"
], ],
"markers": "python_version >= '3.7'", "markers": "python_full_version >= '3.7.0'",
"version": "==43.0.0" "version": "==43.0.0"
}, },
"idna": { "idna": {
@ -271,7 +270,7 @@
"sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980",
"sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe" "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"
], ],
"markers": "python_version >= '3.7'", "markers": "python_full_version >= '3.7.0'",
"version": "==1.0.1" "version": "==1.0.1"
}, },
"lxml": { "lxml": {
@ -418,6 +417,14 @@
"markers": "python_version >= '3.6'", "markers": "python_version >= '3.6'",
"version": "==5.3.0" "version": "==5.3.0"
}, },
"more-itertools": {
"hashes": [
"sha256:0f7d9f83a0a8dcfa8a2694a770590d98a67ea943e3d9f5298309a484758c4e27",
"sha256:fe0e63c4ab068eac62410ab05cccca2dc71ec44ba8ef29916a0090df061cf923"
],
"markers": "python_version >= '3.8'",
"version": "==10.4.0"
},
"platformdirs": { "platformdirs": {
"hashes": [ "hashes": [
"sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee", "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee",
@ -513,9 +520,16 @@
"sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539" "sha256:93de0c98785b27fcf659856aa9f54bfbd399e29969b0621bc7f762bd441b4539"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==9.0.0" "version": "==9.0.0"
}, },
"typing-extensions": {
"hashes": [
"sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d",
"sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"
],
"markers": "python_version >= '3.8'",
"version": "==4.12.2"
},
"urllib3": { "urllib3": {
"hashes": [ "hashes": [
"sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3", "sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3",
@ -529,7 +543,7 @@
"sha256:6754feb4c34a4b6d65fbc359252bf6654dcce3937bf1d95aae4402a60a8f5939", "sha256:6754feb4c34a4b6d65fbc359252bf6654dcce3937bf1d95aae4402a60a8f5939",
"sha256:72093acfdb1d8360ed400869b73fbf1882b95c4287f798084c42ee0c1ff0e425" "sha256:72093acfdb1d8360ed400869b73fbf1882b95c4287f798084c42ee0c1ff0e425"
], ],
"markers": "python_version >= '3.7'", "markers": "python_full_version >= '3.7.0'",
"version": "==4.2.1" "version": "==4.2.1"
} }
}, },
@ -540,25 +554,23 @@
"sha256:a203fe0fcad7939987422140ab17a930f684763bf7335bdb6709991dd7ef6c2d" "sha256:a203fe0fcad7939987422140ab17a930f684763bf7335bdb6709991dd7ef6c2d"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==2.3.1" "version": "==2.3.1"
}, },
"boto3": { "boto3": {
"hashes": [ "hashes": [
"sha256:21120d23cc37c0e80dc4f64434bc5664d2a5645dcd9bf8a8fa97ed5c82164ca0", "sha256:c2f0837a259002489e59d1c30008791e3b3bb59e30e48c64e1d2d270147a4549",
"sha256:ffe7bbb88ba81b5d54bc8fa0cfb2f3b7fe63a6cffa0f9207df2ef5c22a1c0587" "sha256:cbf197ce28f04bc1ffa1db0aa26a1903d9bfa57a490f70537932e84367cdd15b"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.8'", "version": "==1.35.2"
"version": "==1.34.159"
}, },
"botocore": { "botocore": {
"hashes": [ "hashes": [
"sha256:7633062491457419a49f5860c014251ae85689f78266a3ce020c2c8688a76b97", "sha256:92b168d8be79055bb25754aa34d699866d8aa66abc69f8ce99b0c191bd9c6e70",
"sha256:dc28806eb21e3c8d690c422530dff8b4b242ac033cbe98f160a9d37796c09cb1" "sha256:96c8eb6f0baed623a1b57ca9f24cb21d5508872cf0dfebb55527a85b6dbc76ba"
], ],
"markers": "python_version >= '3.8'", "markers": "python_version >= '3.8'",
"version": "==1.34.159" "version": "==1.35.2"
}, },
"certifi": { "certifi": {
"hashes": [ "hashes": [
@ -848,7 +860,7 @@
"sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5", "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5",
"sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0" "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"
], ],
"markers": "python_version >= '3.7'", "markers": "python_full_version >= '3.7.0'",
"version": "==43.0.0" "version": "==43.0.0"
}, },
"exceptiongroup": { "exceptiongroup": {
@ -865,7 +877,6 @@
"sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213" "sha256:597477df7860daa5aa0fdd84bf5208a043ab96b8e96ab708770ae0364dd03213"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_full_version >= '3.8.1'",
"version": "==7.1.1" "version": "==7.1.1"
}, },
"idna": { "idna": {
@ -897,7 +908,7 @@
"sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980", "sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980",
"sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe" "sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"
], ],
"markers": "python_version >= '3.7'", "markers": "python_full_version >= '3.7.0'",
"version": "==1.0.1" "version": "==1.0.1"
}, },
"markupsafe": { "markupsafe": {
@ -976,12 +987,11 @@
}, },
"moto": { "moto": {
"hashes": [ "hashes": [
"sha256:10bd434bfda329639fe9529470c4c27938064c139984024e6a62513e50aff427", "sha256:984377a9c4536543fc09f49a1d5210c61c4a4f55c79719f7d9f8dcdd9bf55ea5",
"sha256:406095ba28da9e67e59bfc6b31b4a2627ca896d3e2c7eb82838fbe527e3c218a" "sha256:ddf8864f0d61af88fd07a4e5eac428c6bebf4fcd10023f8e756e65e9e7b7e4a5"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.8'", "version": "==5.0.13"
"version": "==5.0.12"
}, },
"packaging": { "packaging": {
"hashes": [ "hashes": [
@ -1029,7 +1039,6 @@
"sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce" "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==8.3.2" "version": "==8.3.2"
}, },
"pytest-cov": { "pytest-cov": {
@ -1038,7 +1047,6 @@
"sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857" "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==5.0.0" "version": "==5.0.0"
}, },
"pytest-html": { "pytest-html": {
@ -1047,7 +1055,6 @@
"sha256:c8152cea03bd4e9bee6d525573b67bbc6622967b72b9628dda0ea3e2a0b5dd71" "sha256:c8152cea03bd4e9bee6d525573b67bbc6622967b72b9628dda0ea3e2a0b5dd71"
], ],
"index": "pypi", "index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==4.1.1" "version": "==4.1.1"
}, },
"pytest-metadata": { "pytest-metadata": {

View File

@ -1,7 +1,8 @@
import os import os
import pytest import pytest
from src.aws.s3 import BackupBucket, ConfigBucket, DataBucket, S3Resource
from src.aws.s3 import BackupBucket, ConfigBucket, DataBucket, S3Client
@pytest.fixture @pytest.fixture
@ -15,7 +16,7 @@ def s3_test(s3_client, bucket_name):
yield yield
class TestS3Resource: class TestS3Client:
def test_get_object(self, s3_test, s3_client, bucket_name): def test_get_object(self, s3_test, s3_client, bucket_name):
""" """
@ -31,7 +32,7 @@ class TestS3Resource:
s3_client.put_object(Bucket=bucket_name, Key='hogehoge/test.txt', Body=b'aaaaaaaaaaaaaaa') s3_client.put_object(Bucket=bucket_name, Key='hogehoge/test.txt', Body=b'aaaaaaaaaaaaaaa')
# Act # Act
sut = S3Resource(bucket_name) sut = S3Client(bucket_name)
actual = sut.get_object('hogehoge/test.txt') actual = sut.get_object('hogehoge/test.txt')
# Assert # Assert
@ -48,7 +49,7 @@ class TestS3Resource:
""" """
# Arrange # Arrange
# Act # Act
sut = S3Resource(bucket_name) sut = S3Client(bucket_name)
with pytest.raises(Exception): with pytest.raises(Exception):
# Assert # Assert
sut.get_object('hogehoge/test.txt') sut.get_object('hogehoge/test.txt')
@ -68,7 +69,7 @@ class TestS3Resource:
with open(file_path, mode='w') as f: with open(file_path, mode='w') as f:
f.write('aaaaaaaaaaaaaaa') f.write('aaaaaaaaaaaaaaa')
sut = S3Resource(bucket_name) sut = S3Client(bucket_name)
sut.put_object('hogehoge/test.txt', file_path) sut.put_object('hogehoge/test.txt', file_path)
actual = s3_client.get_object(Bucket=bucket_name, Key='hogehoge/test.txt') actual = s3_client.get_object(Bucket=bucket_name, Key='hogehoge/test.txt')
@ -87,7 +88,7 @@ class TestS3Resource:
""" """
# Arrange # Arrange
# Act # Act
sut = S3Resource(bucket_name) sut = S3Client(bucket_name)
with pytest.raises(Exception): with pytest.raises(Exception):
# Assert # Assert
sut.put_object('hogehoge/test.txt', 'aaaaaaaaaaaaaaa') sut.put_object('hogehoge/test.txt', 'aaaaaaaaaaaaaaa')
@ -108,7 +109,7 @@ class TestS3Resource:
s3_client.create_bucket(Bucket=for_copy_bucket) s3_client.create_bucket(Bucket=for_copy_bucket)
s3_client.put_object(Bucket=bucket_name, Key='hogehoge/test.txt', Body=b'aaaaaaaaaaaaaaa') s3_client.put_object(Bucket=bucket_name, Key='hogehoge/test.txt', Body=b'aaaaaaaaaaaaaaa')
sut = S3Resource(bucket_name) sut = S3Client(bucket_name)
sut.copy(bucket_name, 'hogehoge/test.txt', for_copy_bucket, 'test.txt') sut.copy(bucket_name, 'hogehoge/test.txt', for_copy_bucket, 'test.txt')
actual = s3_client.get_object(Bucket=for_copy_bucket, Key='test.txt') actual = s3_client.get_object(Bucket=for_copy_bucket, Key='test.txt')
@ -125,7 +126,7 @@ class TestS3Resource:
""" """
# Arrange # Arrange
# Act # Act
sut = S3Resource(bucket_name) sut = S3Client(bucket_name)
with pytest.raises(Exception): with pytest.raises(Exception):
# Assert # Assert
sut.copy(bucket_name, 'hogehoge/test.txt', 'for_copy_bucket', 'test.txt') sut.copy(bucket_name, 'hogehoge/test.txt', 'for_copy_bucket', 'test.txt')
@ -140,7 +141,7 @@ class TestS3Resource:
- インスタンス生成時に例外が発生すること - インスタンス生成時に例外が発生すること
""" """
with pytest.raises(Exception) as e: with pytest.raises(Exception) as e:
S3Resource() S3Client()
assert e.value.args[0] == "__init__() missing 1 required positional argument: 'bucket_name'" assert e.value.args[0] == "__init__() missing 1 required positional argument: 'bucket_name'"

View File

@ -4,8 +4,7 @@ from datetime import datetime
import boto3 import boto3
import pytest import pytest
from moto import mock_s3 from moto import mock_aws
from py.xml import html # type: ignore
from . import docstring_parser from . import docstring_parser
@ -21,7 +20,7 @@ def aws_credentials():
@pytest.fixture @pytest.fixture
def s3_client(aws_credentials): def s3_client(aws_credentials):
with mock_s3(): with mock_aws():
conn = boto3.client("s3", region_name="us-east-1") conn = boto3.client("s3", region_name="us-east-1")
yield conn yield conn
@ -35,18 +34,18 @@ def pytest_html_report_title(report):
def pytest_html_results_table_header(cells): def pytest_html_results_table_header(cells):
del cells[2:] del cells[2:]
cells.insert(3, html.th("Cases")) cells.insert(3, '<th>Cases</th>')
cells.insert(4, html.th("Arranges")) cells.insert(4, '<th>Arranges</th>')
cells.insert(5, html.th("Expects")) cells.insert(5, '<th>Expects</th>')
cells.append(html.th("Time", class_="sortable time", col="time")) cells.append('<th class="sortable time" col="time">Time</th>')
def pytest_html_results_table_row(report, cells): def pytest_html_results_table_row(report, cells):
del cells[2:] del cells[2:]
cells.insert(3, html.td(html.pre(report.cases))) # 「テスト内容」をレポートに出力 cells.insert(3, f'<td><pre>{report.cases}</pre></td>') # 「テスト内容」をレポートに出力
cells.insert(4, html.td(html.pre(report.arranges))) # 「期待結果」をレポートに出力 cells.insert(4, f'<td><pre>{report.arranges}</pre></td>') # 「期待結果」をレポートに出力
cells.insert(5, html.td(html.pre(report.expects))) # 「期待結果」をレポートに出力 cells.insert(5, f'<td><pre>{report.expects}</pre></td>') # 「期待結果」をレポートに出力
cells.append(html.td(datetime.now(), class_="col-time")) # ついでに「時間」もレポートに出力 cells.append(f'<td class="col-time">{datetime.now()}</td>') # ついでに「時間」もレポートに出力
@pytest.hookimpl(hookwrapper=True) @pytest.hookimpl(hookwrapper=True)