1515from rest_framework import status
1616from rest_framework .exceptions import NotFound , ValidationError
1717from rest_framework .reverse import reverse
18- from rest_framework .test import APIRequestFactory , APITestCase
18+ from rest_framework .test import APITestCase
19+ from shared .api_archive .archive import ArchiveService
1920from shared .django_apps .core .tests .factories import OwnerFactory
2021from shared .torngit .exceptions import (
2122 TorngitClientGeneralError ,
3738 insert_commit ,
3839 parse_headers ,
3940 parse_params ,
40- store_report_in_redis ,
4141 validate_upload ,
4242)
4343from upload .tokenless .tokenless import TokenlessUploadHandler
@@ -713,31 +713,6 @@ def test_parse_request_headers(self):
713713 {"version" : "v4" },
714714 ) == {"content_type" : "text/plain" , "reduced_redundancy" : True }
715715
716- def test_store_report_in_redis (self ):
717- redis = MockRedis ()
718-
719- with self .subTest ("gzip encoding" ):
720- assert (
721- store_report_in_redis (
722- APIRequestFactory ().get ("" , HTTP_X_CONTENT_ENCODING = "gzip" ),
723- "1c78206f1a46dc6db8412a491fc770eb7d0f8a47" ,
724- "report" ,
725- redis ,
726- )
727- == "upload/1c78206/report/gzip"
728- )
729-
730- with self .subTest ("plain encoding" ):
731- assert (
732- store_report_in_redis (
733- APIRequestFactory ().get ("" ),
734- "1c78206f1a46dc6db8412a491fc770eb7d0f8a47" ,
735- "report" ,
736- redis ,
737- )
738- == "upload/1c78206/report/plain"
739- )
740-
741716 def test_validate_upload_repository_moved (self ):
742717 redis = MockRedis ()
743718 owner = G (Owner , plan = "users-free" )
@@ -893,9 +868,10 @@ def test_dispatch_upload_task(self, upload):
893868 upload .assert_called_once_with (
894869 repoid = repo .repoid ,
895870 commitid = task_arguments .get ("commit" ),
871+ report_type = "coverage" ,
896872 report_code = "local_report" ,
873+ arguments = task_arguments ,
897874 countdown = 4 ,
898- report_type = "coverage" ,
899875 )
900876
901877
@@ -986,6 +962,7 @@ def test_invalid_request_params_invalid_package(self):
986962
987963 assert response .status_code == status .HTTP_400_BAD_REQUEST
988964
965+ @patch ("shared.api_archive.archive.ArchiveService.write_file" )
989966 @patch ("upload.views.legacy.get_redis_connection" )
990967 @patch ("upload.views.legacy.uuid4" )
991968 @patch ("upload.views.legacy.dispatch_upload_task" )
@@ -997,6 +974,7 @@ def test_successful_upload_v2(
997974 mock_dispatch_upload ,
998975 mock_uuid4 ,
999976 mock_get_redis ,
977+ mock_write_file ,
1000978 ):
1001979 class MockRepoProviderAdapter :
1002980 async def get_commit (self , commit , token ):
@@ -1033,6 +1011,14 @@ async def get_commit(self, commit, token):
10331011 )
10341012 assert headers ["content-type" ] != "text/plain"
10351013
1014+ archive_service = ArchiveService (self .repo )
1015+ datetime = timezone .now ().strftime ("%Y-%m-%d" )
1016+ repo_hash = archive_service .get_archive_hash (self .repo )
1017+ expected_url = f"v4/raw/{ datetime } /{ repo_hash } /b521e55aef79b101f48e2544837ca99a7fa3bf6b/dec1f00b-1883-40d0-afd6-6dcb876510be.txt"
1018+
1019+ mock_write_file .assert_called_with (
1020+ expected_url , b"coverage report" , is_already_gzipped = False
1021+ )
10361022 assert mock_dispatch_upload .call_args [0 ][0 ] == {
10371023 "commit" : "b521e55aef79b101f48e2544837ca99a7fa3bf6b" ,
10381024 "token" : "a03e5d02-9495-4413-b0d8-05651bb2e842" ,
@@ -1045,8 +1031,7 @@ async def get_commit(self, commit, token):
10451031 "build_url" : None ,
10461032 "branch" : None ,
10471033 "reportid" : "dec1f00b-1883-40d0-afd6-6dcb876510be" ,
1048- "redis_key" : "upload/b521e55/dec1f00b-1883-40d0-afd6-6dcb876510be/plain" ,
1049- "url" : None ,
1034+ "url" : expected_url ,
10501035 "job" : None ,
10511036 }
10521037
@@ -1060,6 +1045,7 @@ async def get_commit(self, commit, token):
10601045 == "https://app.codecov.io/github/codecovtest/upload-test-repo/commit/b521e55aef79b101f48e2544837ca99a7fa3bf6b"
10611046 )
10621047
1048+ @patch ("shared.api_archive.archive.ArchiveService.write_file" )
10631049 @patch ("upload.views.legacy.get_redis_connection" )
10641050 @patch ("upload.views.legacy.uuid4" )
10651051 @patch ("upload.views.legacy.dispatch_upload_task" )
@@ -1071,6 +1057,7 @@ def test_successful_upload_v2_slash(
10711057 mock_dispatch_upload ,
10721058 mock_uuid4 ,
10731059 mock_get_redis ,
1060+ mock_write_file ,
10741061 ):
10751062 class MockRepoProviderAdapter :
10761063 async def get_commit (self , commit , token ):
@@ -1107,6 +1094,14 @@ async def get_commit(self, commit, token):
11071094 )
11081095 assert headers ["content-type" ] != "text/plain"
11091096
1097+ archive_service = ArchiveService (self .repo )
1098+ datetime = timezone .now ().strftime ("%Y-%m-%d" )
1099+ repo_hash = archive_service .get_archive_hash (self .repo )
1100+ expected_url = f"v4/raw/{ datetime } /{ repo_hash } /b521e55aef79b101f48e2544837ca99a7fa3bf6b/dec1f00b-1883-40d0-afd6-6dcb876510be.txt"
1101+
1102+ mock_write_file .assert_called_with (
1103+ expected_url , b"coverage report" , is_already_gzipped = False
1104+ )
11101105 assert mock_dispatch_upload .call_args [0 ][0 ] == {
11111106 "commit" : "b521e55aef79b101f48e2544837ca99a7fa3bf6b" ,
11121107 "token" : "a03e5d02-9495-4413-b0d8-05651bb2e842" ,
@@ -1119,8 +1114,7 @@ async def get_commit(self, commit, token):
11191114 "build_url" : None ,
11201115 "branch" : None ,
11211116 "reportid" : "dec1f00b-1883-40d0-afd6-6dcb876510be" ,
1122- "redis_key" : "upload/b521e55/dec1f00b-1883-40d0-afd6-6dcb876510be/plain" ,
1123- "url" : None ,
1117+ "url" : expected_url ,
11241118 "job" : None ,
11251119 }
11261120
0 commit comments