feat: アルトマーク取込処理のテスト追加。COM_出身校の登録テストを1つ追加
This commit is contained in:
parent
8caef8acec
commit
e9dad1aecf
10
ecs/jskult-batch-daily/.gitignore
vendored
10
ecs/jskult-batch-daily/.gitignore
vendored
@ -1,4 +1,10 @@
|
||||
__pycache__
|
||||
|
||||
.vscode/settings.json
|
||||
.env
|
||||
|
||||
# python
|
||||
__pycache__
|
||||
|
||||
# python test
|
||||
.pytest_cache
|
||||
.coverage
|
||||
.report/
|
||||
@ -3,6 +3,10 @@ url = "https://pypi.org/simple"
|
||||
verify_ssl = true
|
||||
name = "pypi"
|
||||
|
||||
[scripts]
|
||||
"test:ultmarc" = "pytest tests/batch/ultmarc/"
|
||||
"test:ultmarc:cov" = "pytest --cov=src/batch/ultmarc/ --cov-branch --cov-report=term-missing tests/batch/ultmarc/"
|
||||
|
||||
[packages]
|
||||
boto3 = "*"
|
||||
PyMySQL = "*"
|
||||
@ -12,6 +16,8 @@ tenacity = "*"
|
||||
[dev-packages]
|
||||
autopep8 = "*"
|
||||
flake8 = "*"
|
||||
pytest = "*"
|
||||
pytest-cov = "*"
|
||||
|
||||
[requires]
|
||||
python_version = "3.9"
|
||||
|
||||
214
ecs/jskult-batch-daily/Pipfile.lock
generated
214
ecs/jskult-batch-daily/Pipfile.lock
generated
@ -1,7 +1,7 @@
|
||||
{
|
||||
"_meta": {
|
||||
"hash": {
|
||||
"sha256": "1b9b3da586499b64915b0cf14217a1bcfb26c5e3e1c6fbfc9cce99242bc4faed"
|
||||
"sha256": "9bce8f43bcad5d6ae8e5a558b8ade00a83f6e1671993e91b0a883fffa6b95df9"
|
||||
},
|
||||
"pipfile-spec": 6,
|
||||
"requires": {
|
||||
@ -18,19 +18,19 @@
|
||||
"default": {
|
||||
"boto3": {
|
||||
"hashes": [
|
||||
"sha256:043f8981d10c4e7c48736df4381dac557b46c5b369b0a450d8f3d7f5fdd24db5",
|
||||
"sha256:b00f416832bc59863b96175045d2ebe067d9222289bce677c48fd72c006eaaad"
|
||||
"sha256:816a198a6cc4f283af6b21439d85be6dbe4b73c2232dd906c6bafb4fece28d19",
|
||||
"sha256:9de90a2c0b853f84436b032b28947fc8a765dc462573a8d543b13f16c6579b40"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==1.26.102"
|
||||
"version": "==1.26.107"
|
||||
},
|
||||
"botocore": {
|
||||
"hashes": [
|
||||
"sha256:4bae8f502507da18ff37c61cb18745cfb11d87a61dd0ea27e346adadff92aa3f",
|
||||
"sha256:58b11c630d2044ea732ba4c403d29fab51e954465f9b3f7099cbf5ac0ce7ab47"
|
||||
"sha256:ee1e43e6cd0864cc6811ba3f05123647612ee3f07a286a4c94f5885aa86d6922",
|
||||
"sha256:f63942b4b7248c0b3d6ecbc2852cf0787c23ace2a91a012f7ee0b3ae3eb08f4f"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==1.29.102"
|
||||
"version": "==1.29.107"
|
||||
},
|
||||
"greenlet": {
|
||||
"hashes": [
|
||||
@ -140,50 +140,50 @@
|
||||
},
|
||||
"sqlalchemy": {
|
||||
"hashes": [
|
||||
"sha256:013f4f330001e84a2b0ef1f2c9bd73169c79d582e54e1a144be1be1dbc911711",
|
||||
"sha256:0789e199fbce8cb1775337afc631ed12bcc5463dd77d7a06b8dafd758cde51f8",
|
||||
"sha256:0b698440c477c00bdedff87348b19a79630a235864a8f4378098d61079c16ce9",
|
||||
"sha256:0eac488be90dd3f7a655d2e34fa59e1305fccabc4abfbd002e3a72ae10bd2f89",
|
||||
"sha256:14854bdb2a35af536d14f77dfa8dbc20e1bb1972996d64c4147e0d3165c9aaf5",
|
||||
"sha256:18795e87601b4244fd08b542cd6bff9ef674b17bcd34e4a3c9935398e2cc762c",
|
||||
"sha256:32f508fef9c5a7d19411d94ef64cf5405e42c4689e51ddbb81ac9a7be045cce8",
|
||||
"sha256:33f73cc45ffa050f5c3b60ff4490e0ae9e02701461c1600d5ede1b008076b1b9",
|
||||
"sha256:38e26cf6b9b4c6c37846f7e31b42e4d664b35f055691265f07e06aeb6167c494",
|
||||
"sha256:3da3dff8d9833a7d7f66a3c45a79a3955f775c79f47bb7eea266d0b4c267b17a",
|
||||
"sha256:432cfd77642771ee7ea0dd0f3fb664f18506a3625eab6e6d5d1d771569171270",
|
||||
"sha256:4339110be209fea37a2bb4f35f1127c7562a0393e9e6df5d9a65cc4f5c167cb6",
|
||||
"sha256:486015a58c9a67f65a15b4f19468b35b97cee074ae55386a9c240f1da308fbfe",
|
||||
"sha256:494db0026918e3f707466a1200a5dedbf254a4bce01a3115fd95f04ba8258f09",
|
||||
"sha256:57b80e877eb6ec63295835f8a3b86ca3a44829f80c4748e1b019e03adea550fc",
|
||||
"sha256:5f7c40ec2e3b31293184020daba95850832bea523a08496ac89b27a5276ec804",
|
||||
"sha256:6d44ff7573016fc26311b5a5c54d5656fb9e0c39e138bc8b81cb7c8667485203",
|
||||
"sha256:774965c41b71c8ebe3c5728bf5b9a948231fc3a0422d9fdace0686f5bb689ad6",
|
||||
"sha256:7917632606fc5d4be661dcde45cc415df835e594e2c50cc999a44f24b6bf6d92",
|
||||
"sha256:9020125e3be677c64d4dda7048e247343f1663089cf268a4cc98c957adb7dbe0",
|
||||
"sha256:921485d1f69ed016e1f756de67d02ad4f143eb6b92b9776bfff78786d8978ab5",
|
||||
"sha256:94556a2a7fc3de094ea056b62845e2e6e271e26d1e1b2540a1cd2d2506257a10",
|
||||
"sha256:a4c1e1582492c66dfacc9eab52738f3e64d9a2a380e412668f75aa06e540f649",
|
||||
"sha256:a65a8fd09bdffd63fa23b39cd902e6a4ca23d86ecfe129513e43767a1f3e91fb",
|
||||
"sha256:a6f7d1debb233f1567d700ebcdde0781a0b63db0ef266246dfbf75ae41bfdf85",
|
||||
"sha256:b0995b92612979d208189245bf87349ad9243b97b49652347a28ddee0803225a",
|
||||
"sha256:b8ab8f90f4a13c979e6c41c9f011b655c1b9ae2df6cffa8fa2c7c4d740f3512e",
|
||||
"sha256:bc370d53fee7408330099c4bcc2573a107757b203bc61f114467dfe586a0c7bd",
|
||||
"sha256:c38641f5c3714505d65dbbd8fb1350408b9ad8461769ec8e440e1177f9c92d1d",
|
||||
"sha256:cc337b96ec59ef29907eeadc2ac11188739281568f14c719e61550ca6d201a41",
|
||||
"sha256:ce076e25f1170000b4ecdc57a1ff8a70dbe4a5648ec3da0563ef3064e8db4f15",
|
||||
"sha256:cebd161f964af58290596523c65e41a5a161a99f7212b1ae675e288a4b5e0a7c",
|
||||
"sha256:d2e7411d5ea164c6f4d003f5d4f5e72e202956aaa7496b95bb4a4c39669e001c",
|
||||
"sha256:e735a635126b2338dfd3a0863b675437cb53d85885a7602b8cffb24345df33ed",
|
||||
"sha256:e7e61e2e4dfe175dc3510889e44eda1c32f55870d6950ef40519640cb266704d",
|
||||
"sha256:e90f0be674e0845c5c1ccfa5e31c9ee28fd406546a61afc734355cc7ea1f8f8b",
|
||||
"sha256:ea1c63e61b5c13161c8468305f0a5837c80aae2070e33654c68dd12572b638eb",
|
||||
"sha256:ea9461f6955f3cf9eff6eeec271686caed7792c76f5b966886a36a42ea46e6b2",
|
||||
"sha256:f15c54713a8dd57a01c974c9f96476688f6f6374d348819ed7e459535844b614",
|
||||
"sha256:fb649c5473f79c9a7b6133f53a31f4d87de14755c79224007eb7ec76e628551e",
|
||||
"sha256:fc67667c8e8c04e5c3250ab2cd51df40bc7c28c7c253d0475b377eff86fe4bb0"
|
||||
"sha256:07950fc82f844a2de67ddb4e535f29b65652b4d95e8b847823ce66a6d540a41d",
|
||||
"sha256:0a865b5ec4ba24f57c33b633b728e43fde77b968911a6046443f581b25d29dd9",
|
||||
"sha256:0b49f1f71d7a44329a43d3edd38cc5ee4c058dfef4487498393d16172007954b",
|
||||
"sha256:13f984a190d249769a050634b248aef8991acc035e849d02b634ea006c028fa8",
|
||||
"sha256:1b69666e25cc03c602d9d3d460e1281810109e6546739187044fc256c67941ef",
|
||||
"sha256:1d06e119cf79a3d80ab069f064a07152eb9ba541d084bdaee728d8a6f03fd03d",
|
||||
"sha256:246712af9fc761d6c13f4f065470982e175d902e77aa4218c9cb9fc9ff565a0c",
|
||||
"sha256:34eb96c1de91d8f31e988302243357bef3f7785e1b728c7d4b98bd0c117dafeb",
|
||||
"sha256:4c3020afb144572c7bfcba9d7cce57ad42bff6e6115dffcfe2d4ae6d444a214f",
|
||||
"sha256:4f759eccb66e6d495fb622eb7f4ac146ae674d829942ec18b7f5a35ddf029597",
|
||||
"sha256:68ed381bc340b4a3d373dbfec1a8b971f6350139590c4ca3cb722fdb50035777",
|
||||
"sha256:6b72dccc5864ea95c93e0a9c4e397708917fb450f96737b4a8395d009f90b868",
|
||||
"sha256:6e84ab63d25d8564d7a8c05dc080659931a459ee27f6ed1cf4c91f292d184038",
|
||||
"sha256:734805708632e3965c2c40081f9a59263c29ffa27cba9b02d4d92dfd57ba869f",
|
||||
"sha256:78612edf4ba50d407d0eb3a64e9ec76e6efc2b5d9a5c63415d53e540266a230a",
|
||||
"sha256:7e472e9627882f2d75b87ff91c5a2bc45b31a226efc7cc0a054a94fffef85862",
|
||||
"sha256:865392a50a721445156809c1a6d6ab6437be70c1c2599f591a8849ed95d3c693",
|
||||
"sha256:8d118e233f416d713aac715e2c1101e17f91e696ff315fc9efbc75b70d11e740",
|
||||
"sha256:8d3ece5960b3e821e43a4927cc851b6e84a431976d3ffe02aadb96519044807e",
|
||||
"sha256:93c78d42c14aa9a9e0866eacd5b48df40a50d0e2790ee377af7910d224afddcf",
|
||||
"sha256:95719215e3ec7337b9f57c3c2eda0e6a7619be194a5166c07c1e599f6afc20fa",
|
||||
"sha256:9838bd247ee42eb74193d865e48dd62eb50e45e3fdceb0fdef3351133ee53dcf",
|
||||
"sha256:aa5c270ece17c0c0e0a38f2530c16b20ea05d8b794e46c79171a86b93b758891",
|
||||
"sha256:ac6a0311fb21a99855953f84c43fcff4bdca27a2ffcc4f4d806b26b54b5cddc9",
|
||||
"sha256:ad5363a1c65fde7b7466769d4261126d07d872fc2e816487ae6cec93da604b6b",
|
||||
"sha256:b3e5864eba71a3718236a120547e52c8da2ccb57cc96cecd0480106a0c799c92",
|
||||
"sha256:bbda1da8d541904ba262825a833c9f619e93cb3fd1156be0a5e43cd54d588dcd",
|
||||
"sha256:c6e27189ff9aebfb2c02fd252c629ea58657e7a5ff1a321b7fc9c2bf6dc0b5f3",
|
||||
"sha256:c8239ce63a90007bce479adf5460d48c1adae4b933d8e39a4eafecfc084e503c",
|
||||
"sha256:d209594e68bec103ad5243ecac1b40bf5770c9ebf482df7abf175748a34f4853",
|
||||
"sha256:d5327f54a9c39e7871fc532639616f3777304364a0bb9b89d6033ad34ef6c5f8",
|
||||
"sha256:db4bd1c4792da753f914ff0b688086b9a8fd78bb9bc5ae8b6d2e65f176b81eb9",
|
||||
"sha256:e4780be0f19e5894c17f75fc8de2fe1ae233ab37827125239ceb593c6f6bd1e2",
|
||||
"sha256:e4a019f723b6c1e6b3781be00fb9e0844bc6156f9951c836ff60787cc3938d76",
|
||||
"sha256:e62c4e762d6fd2901692a093f208a6a6575b930e9458ad58c2a7f080dd6132da",
|
||||
"sha256:e730603cae5747bc6d6dece98b45a57d647ed553c8d5ecef602697b1c1501cf2",
|
||||
"sha256:ebc4eeb1737a5a9bdb0c24f4c982319fa6edd23cdee27180978c29cbb026f2bd",
|
||||
"sha256:ee2946042cc7851842d7a086a92b9b7b494cbe8c3e7e4627e27bc912d3a7655e",
|
||||
"sha256:f005245e1cb9b8ca53df73ee85e029ac43155e062405015e49ec6187a2e3fb44",
|
||||
"sha256:f49c5d3c070a72ecb96df703966c9678dda0d4cb2e2736f88d15f5e1203b4159",
|
||||
"sha256:f61ab84956dc628c8dfe9d105b6aec38afb96adae3e5e7da6085b583ff6ea789"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==2.0.7"
|
||||
"version": "==2.0.9"
|
||||
},
|
||||
"tenacity": {
|
||||
"hashes": [
|
||||
@ -211,6 +211,14 @@
|
||||
}
|
||||
},
|
||||
"develop": {
|
||||
"attrs": {
|
||||
"hashes": [
|
||||
"sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836",
|
||||
"sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==22.2.0"
|
||||
},
|
||||
"autopep8": {
|
||||
"hashes": [
|
||||
"sha256:86e9303b5e5c8160872b2f5ef611161b2893e9bfe8ccc7e2f76385947d57a2f1",
|
||||
@ -219,6 +227,74 @@
|
||||
"index": "pypi",
|
||||
"version": "==2.0.2"
|
||||
},
|
||||
"coverage": {
|
||||
"extras": [
|
||||
"toml"
|
||||
],
|
||||
"hashes": [
|
||||
"sha256:006ed5582e9cbc8115d2e22d6d2144a0725db542f654d9d4fda86793832f873d",
|
||||
"sha256:046936ab032a2810dcaafd39cc4ef6dd295df1a7cbead08fe996d4765fca9fe4",
|
||||
"sha256:0484d9dd1e6f481b24070c87561c8d7151bdd8b044c93ac99faafd01f695c78e",
|
||||
"sha256:0ce383d5f56d0729d2dd40e53fe3afeb8f2237244b0975e1427bfb2cf0d32bab",
|
||||
"sha256:186e0fc9cf497365036d51d4d2ab76113fb74f729bd25da0975daab2e107fd90",
|
||||
"sha256:2199988e0bc8325d941b209f4fd1c6fa007024b1442c5576f1a32ca2e48941e6",
|
||||
"sha256:299bc75cb2a41e6741b5e470b8c9fb78d931edbd0cd009c58e5c84de57c06731",
|
||||
"sha256:3668291b50b69a0c1ef9f462c7df2c235da3c4073f49543b01e7eb1dee7dd540",
|
||||
"sha256:36dd42da34fe94ed98c39887b86db9d06777b1c8f860520e21126a75507024f2",
|
||||
"sha256:38004671848b5745bb05d4d621526fca30cee164db42a1f185615f39dc997292",
|
||||
"sha256:387fb46cb8e53ba7304d80aadca5dca84a2fbf6fe3faf6951d8cf2d46485d1e5",
|
||||
"sha256:3eb55b7b26389dd4f8ae911ba9bc8c027411163839dea4c8b8be54c4ee9ae10b",
|
||||
"sha256:420f94a35e3e00a2b43ad5740f935358e24478354ce41c99407cddd283be00d2",
|
||||
"sha256:4ac0f522c3b6109c4b764ffec71bf04ebc0523e926ca7cbe6c5ac88f84faced0",
|
||||
"sha256:4c752d5264053a7cf2fe81c9e14f8a4fb261370a7bb344c2a011836a96fb3f57",
|
||||
"sha256:4f01911c010122f49a3e9bdc730eccc66f9b72bd410a3a9d3cb8448bb50d65d3",
|
||||
"sha256:4f68ee32d7c4164f1e2c8797535a6d0a3733355f5861e0f667e37df2d4b07140",
|
||||
"sha256:4fa54fb483decc45f94011898727802309a109d89446a3c76387d016057d2c84",
|
||||
"sha256:507e4720791977934bba016101579b8c500fb21c5fa3cd4cf256477331ddd988",
|
||||
"sha256:53d0fd4c17175aded9c633e319360d41a1f3c6e352ba94edcb0fa5167e2bad67",
|
||||
"sha256:55272f33da9a5d7cccd3774aeca7a01e500a614eaea2a77091e9be000ecd401d",
|
||||
"sha256:5764e1f7471cb8f64b8cda0554f3d4c4085ae4b417bfeab236799863703e5de2",
|
||||
"sha256:57b77b9099f172804e695a40ebaa374f79e4fb8b92f3e167f66facbf92e8e7f5",
|
||||
"sha256:5afdad4cc4cc199fdf3e18088812edcf8f4c5a3c8e6cb69127513ad4cb7471a9",
|
||||
"sha256:5cc0783844c84af2522e3a99b9b761a979a3ef10fb87fc4048d1ee174e18a7d8",
|
||||
"sha256:5e1df45c23d4230e3d56d04414f9057eba501f78db60d4eeecfcb940501b08fd",
|
||||
"sha256:6146910231ece63facfc5984234ad1b06a36cecc9fd0c028e59ac7c9b18c38c6",
|
||||
"sha256:797aad79e7b6182cb49c08cc5d2f7aa7b2128133b0926060d0a8889ac43843be",
|
||||
"sha256:7c20b731211261dc9739bbe080c579a1835b0c2d9b274e5fcd903c3a7821cf88",
|
||||
"sha256:817295f06eacdc8623dc4df7d8b49cea65925030d4e1e2a7c7218380c0072c25",
|
||||
"sha256:81f63e0fb74effd5be736cfe07d710307cc0a3ccb8f4741f7f053c057615a137",
|
||||
"sha256:872d6ce1f5be73f05bea4df498c140b9e7ee5418bfa2cc8204e7f9b817caa968",
|
||||
"sha256:8c99cb7c26a3039a8a4ee3ca1efdde471e61b4837108847fb7d5be7789ed8fd9",
|
||||
"sha256:8dbe2647bf58d2c5a6c5bcc685f23b5f371909a5624e9f5cd51436d6a9f6c6ef",
|
||||
"sha256:8efb48fa743d1c1a65ee8787b5b552681610f06c40a40b7ef94a5b517d885c54",
|
||||
"sha256:92ebc1619650409da324d001b3a36f14f63644c7f0a588e331f3b0f67491f512",
|
||||
"sha256:9d22e94e6dc86de981b1b684b342bec5e331401599ce652900ec59db52940005",
|
||||
"sha256:ba279aae162b20444881fc3ed4e4f934c1cf8620f3dab3b531480cf602c76b7f",
|
||||
"sha256:bc4803779f0e4b06a2361f666e76f5c2e3715e8e379889d02251ec911befd149",
|
||||
"sha256:bfe7085783cda55e53510482fa7b5efc761fad1abe4d653b32710eb548ebdd2d",
|
||||
"sha256:c448b5c9e3df5448a362208b8d4b9ed85305528313fca1b479f14f9fe0d873b8",
|
||||
"sha256:c90e73bdecb7b0d1cea65a08cb41e9d672ac6d7995603d6465ed4914b98b9ad7",
|
||||
"sha256:d2b96123a453a2d7f3995ddb9f28d01fd112319a7a4d5ca99796a7ff43f02af5",
|
||||
"sha256:d52f0a114b6a58305b11a5cdecd42b2e7f1ec77eb20e2b33969d702feafdd016",
|
||||
"sha256:d530191aa9c66ab4f190be8ac8cc7cfd8f4f3217da379606f3dd4e3d83feba69",
|
||||
"sha256:d683d230b5774816e7d784d7ed8444f2a40e7a450e5720d58af593cb0b94a212",
|
||||
"sha256:db45eec1dfccdadb179b0f9ca616872c6f700d23945ecc8f21bb105d74b1c5fc",
|
||||
"sha256:db8c2c5ace167fd25ab5dd732714c51d4633f58bac21fb0ff63b0349f62755a8",
|
||||
"sha256:e2926b8abedf750c2ecf5035c07515770944acf02e1c46ab08f6348d24c5f94d",
|
||||
"sha256:e627dee428a176ffb13697a2c4318d3f60b2ccdde3acdc9b3f304206ec130ccd",
|
||||
"sha256:efe1c0adad110bf0ad7fb59f833880e489a61e39d699d37249bdf42f80590169"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==7.2.2"
|
||||
},
|
||||
"exceptiongroup": {
|
||||
"hashes": [
|
||||
"sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e",
|
||||
"sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"
|
||||
],
|
||||
"markers": "python_version < '3.11'",
|
||||
"version": "==1.1.1"
|
||||
},
|
||||
"flake8": {
|
||||
"hashes": [
|
||||
"sha256:3833794e27ff64ea4e9cf5d410082a8b97ff1a06c16aa3d2027339cd0f1195c7",
|
||||
@ -227,6 +303,14 @@
|
||||
"index": "pypi",
|
||||
"version": "==6.0.0"
|
||||
},
|
||||
"iniconfig": {
|
||||
"hashes": [
|
||||
"sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3",
|
||||
"sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==2.0.0"
|
||||
},
|
||||
"mccabe": {
|
||||
"hashes": [
|
||||
"sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325",
|
||||
@ -235,6 +319,22 @@
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==0.7.0"
|
||||
},
|
||||
"packaging": {
|
||||
"hashes": [
|
||||
"sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2",
|
||||
"sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97"
|
||||
],
|
||||
"markers": "python_version >= '3.7'",
|
||||
"version": "==23.0"
|
||||
},
|
||||
"pluggy": {
|
||||
"hashes": [
|
||||
"sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159",
|
||||
"sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"
|
||||
],
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==1.0.0"
|
||||
},
|
||||
"pycodestyle": {
|
||||
"hashes": [
|
||||
"sha256:347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053",
|
||||
@ -251,6 +351,22 @@
|
||||
"markers": "python_version >= '3.6'",
|
||||
"version": "==3.0.1"
|
||||
},
|
||||
"pytest": {
|
||||
"hashes": [
|
||||
"sha256:130328f552dcfac0b1cec75c12e3f005619dc5f874f0a06e8ff7263f0ee6225e",
|
||||
"sha256:c99ab0c73aceb050f68929bc93af19ab6db0558791c6a0715723abe9d0ade9d4"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==7.2.2"
|
||||
},
|
||||
"pytest-cov": {
|
||||
"hashes": [
|
||||
"sha256:2feb1b751d66a8bd934e5edfa2e961d11309dc37b73b0eabe73b5945fee20f6b",
|
||||
"sha256:996b79efde6433cdbd0088872dbc5fb3ed7fe1578b68cdbba634f14bb8dd0470"
|
||||
],
|
||||
"index": "pypi",
|
||||
"version": "==4.0.0"
|
||||
},
|
||||
"tomli": {
|
||||
"hashes": [
|
||||
"sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
|
||||
|
||||
3
ecs/jskult-batch-daily/pytest.ini
Normal file
3
ecs/jskult-batch-daily/pytest.ini
Normal file
@ -0,0 +1,3 @@
|
||||
[pytest]
|
||||
log_format = %(levelname)s %(asctime)s %(message)s
|
||||
log_date_format = %Y-%m-%d %H:%M:%S
|
||||
0
ecs/jskult-batch-daily/tests/__init__.py
Normal file
0
ecs/jskult-batch-daily/tests/__init__.py
Normal file
0
ecs/jskult-batch-daily/tests/batch/__init__.py
Normal file
0
ecs/jskult-batch-daily/tests/batch/__init__.py
Normal file
@ -0,0 +1,85 @@
|
||||
from datetime import datetime
|
||||
|
||||
import pytest
|
||||
|
||||
from src.batch.common.batch_config import BatchConfig
|
||||
from src.batch.ultmarc.utmp_tables.table_mapper.concrete import com_alma_mapper
|
||||
from src.batch.ultmarc.utmp_tables.ultmarc_table_mapper_factory import \
|
||||
UltmarcTableMapperFactory
|
||||
from src.db.database import Database
|
||||
from tests.testing_utility import (assert_table_results,
|
||||
create_ultmarc_common_column_names,
|
||||
create_ultmarc_common_column_values,
|
||||
create_ultmarc_test_csv, get_module_name)
|
||||
|
||||
|
||||
class TestComAlmaMapper:
|
||||
"""COM_出身校"""
|
||||
|
||||
db: Database
|
||||
batch_config: BatchConfig
|
||||
table_columns = ["alma_cd", "alma"] + create_ultmarc_common_column_names()
|
||||
|
||||
@pytest.fixture(autouse=True, scope='function')
|
||||
def pre_test(self, database: Database):
|
||||
"""テスト実行前後処理"""
|
||||
self.batch_config = BatchConfig.get_instance()
|
||||
# setup
|
||||
self.db = database
|
||||
self.db.connect()
|
||||
self.db.begin()
|
||||
|
||||
# testing
|
||||
yield
|
||||
|
||||
# teardown
|
||||
self.db.rollback()
|
||||
self.db.disconnect()
|
||||
|
||||
def test_insert_record_one(self, expect_datetime: datetime, expect_date_str: str):
|
||||
"""
|
||||
Cases:
|
||||
COM_出身校テーブルにレコードを1件登録する
|
||||
Arranges:
|
||||
- CSVデータを用意する
|
||||
- 追加対象となるレコードを削除する
|
||||
Expects:
|
||||
- 登録内容が期待値と一致すること
|
||||
"""
|
||||
|
||||
# Arrange
|
||||
# 処理日設定
|
||||
self.batch_config.syor_date = datetime.strftime(datetime.now(), '%Y/%m/%d')
|
||||
# テストデータ1件作成
|
||||
test_csv = create_ultmarc_test_csv(
|
||||
'"004","001","A","20141113","20141114","北大","1","2014/11/21 22:53","VANLOAD",,,"2014/11/21 22:53"'
|
||||
)[0]
|
||||
# テスト対象のデータをDBから削除
|
||||
self.db.execute("DELETE FROM src05.com_alma WHERE alma_cd = '001'")
|
||||
|
||||
# sut(system under test)作成
|
||||
layout_class = test_csv[0]
|
||||
record_id = test_csv[1]
|
||||
factory = UltmarcTableMapperFactory()
|
||||
sut: com_alma_mapper.ComAlmaMapper = factory.create(
|
||||
layout_class=layout_class,
|
||||
record_id=record_id,
|
||||
records=test_csv,
|
||||
db=self.db
|
||||
)
|
||||
assert type(sut) is com_alma_mapper.ComAlmaMapper, 'マッパークラスが期待通りか'
|
||||
|
||||
# Act
|
||||
sut.make_query()
|
||||
sut.execute_queries()
|
||||
|
||||
# Assert
|
||||
# 期待値となるモジュール名
|
||||
module_name = get_module_name(com_alma_mapper)
|
||||
# 実行日時
|
||||
expect_row = ["001", "北大"] + create_ultmarc_common_column_values(expect_datetime, expect_date_str, module_name)
|
||||
expect_rows = [{c: r for c, r in zip(self.table_columns, expect_row)}]
|
||||
actual_rows = self.db.execute_select("SELECT * FROM src05.com_alma WHERE alma_cd = '001'")
|
||||
|
||||
# 期待値検査
|
||||
assert_table_results(actual_rows, expect_rows)
|
||||
25
ecs/jskult-batch-daily/tests/conftest.py
Normal file
25
ecs/jskult-batch-daily/tests/conftest.py
Normal file
@ -0,0 +1,25 @@
|
||||
"""共通テストフィクスチャ"""
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
import pytest
|
||||
|
||||
from src.db.database import Database
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def database() -> Database:
|
||||
"""データベース接続モジュールを作成"""
|
||||
return Database.get_instance()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def expect_datetime() -> datetime:
|
||||
"""テスト実行年月日時分秒を生成"""
|
||||
return datetime.now()
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def expect_date_str(expect_datetime: datetime) -> str:
|
||||
"""テスト実行年月日の文字8桁を生成"""
|
||||
return expect_datetime.strftime('%Y%m%d')
|
||||
102
ecs/jskult-batch-daily/tests/testing_utility.py
Normal file
102
ecs/jskult-batch-daily/tests/testing_utility.py
Normal file
@ -0,0 +1,102 @@
|
||||
"""テスト用共通処理関数"""
|
||||
|
||||
import csv
|
||||
import io
|
||||
from datetime import datetime
|
||||
from types import ModuleType
|
||||
|
||||
|
||||
def create_ultmarc_test_csv(*csv_rows: str) -> list[list[str]]:
|
||||
"""アルトマーク取込テストのCSVを作成
|
||||
Args:
|
||||
csv_rows (tuple[str]): CSV文字列のリスト
|
||||
Returns:
|
||||
list[list[str]]: CSVデータ
|
||||
"""
|
||||
string_io = io.StringIO()
|
||||
string_io.writelines(csv_rows)
|
||||
string_io.seek(0)
|
||||
reader = csv.reader(string_io)
|
||||
test_csv = [r for r in reader]
|
||||
|
||||
return test_csv
|
||||
|
||||
|
||||
def create_ultmarc_common_column_names() -> list[str]:
|
||||
"""アルトマークテーブル共通のカラム名を作成
|
||||
Returns:
|
||||
list[str]: 共通カラム名
|
||||
"""
|
||||
|
||||
return [
|
||||
'regist_ymd',
|
||||
'update_ymd',
|
||||
'delete_ymd',
|
||||
'regist_date',
|
||||
'create_user',
|
||||
'update_date',
|
||||
'update_user',
|
||||
'sys_regist_date',
|
||||
'regist_prgm_id',
|
||||
'sys_update_date',
|
||||
'update_prgm_id'
|
||||
]
|
||||
|
||||
|
||||
def create_ultmarc_common_column_values(expect_datetime: datetime, expect_date_str: str, module_name: str) -> list:
|
||||
"""アルトマークテーブル共通のカラムを作成
|
||||
|
||||
Args:
|
||||
expect_datetime (datetime): テスト実行年月日時分秒
|
||||
expect_date_str (str): テスト実行年月日の文字列
|
||||
module_name (str): モジュール名
|
||||
|
||||
Returns:
|
||||
list: 共通カラム値
|
||||
"""
|
||||
|
||||
return [
|
||||
expect_date_str, # 登録年月日(regist_ymd)
|
||||
None, # 更新年月日(update_ymd)
|
||||
None, # 削除年月日(delete_ymd)
|
||||
None, # 登録日時(regist_date)
|
||||
None, # 登録者(create_user)
|
||||
None, # 更新日時(update_date)
|
||||
None, # 更新者(update_user)
|
||||
expect_datetime, # システム登録日時(sys_regist_date)
|
||||
module_name, # 登録プログラムid(regist_prgm_id)
|
||||
expect_datetime, # システム更新日時(sys_update_date)
|
||||
module_name # 更新プログラムid(update_prgm_id)
|
||||
]
|
||||
|
||||
|
||||
def get_module_name(module: ModuleType) -> str:
|
||||
"""登録プログラムID、更新プログラムIDに登録するモジュール名を作成
|
||||
|
||||
Args:
|
||||
module (ModuleType): pythonモジュール
|
||||
|
||||
Returns:
|
||||
str: モジュール名
|
||||
"""
|
||||
return module.__name__.split('.')[-1]
|
||||
|
||||
|
||||
def assert_table_results(actual_rows: list[dict], expect_rows: list[dict]) -> None:
|
||||
"""テーブル同士の取得結果突き合わせ
|
||||
|
||||
Args:
|
||||
actual_rows (list[dict]): テスト結果の辞書リスト
|
||||
expect_rows (list[dict]): 期待値の辞書リスト
|
||||
"""
|
||||
# 取得件数が一致すること
|
||||
assert len(actual_rows) == len(expect_rows)
|
||||
|
||||
# 1カラムずつ調査
|
||||
for actual_row, expect_row in zip(actual_rows, expect_rows):
|
||||
for actual_col_name, expect_col_name in zip(actual_row, expect_row):
|
||||
# システム日付が設定されるカラムは、期待値以前になっていること
|
||||
if actual_col_name in ['sys_regist_date', 'sys_update_date']:
|
||||
assert actual_row[actual_col_name] < expect_row[expect_col_name], f'{actual_col_name}が、期待値の日時以前であること'
|
||||
else:
|
||||
assert actual_row[actual_col_name] == expect_row[expect_col_name], f'{actual_col_name}が、期待値と一致すること'
|
||||
Loading…
x
Reference in New Issue
Block a user