82
82
)
83
83
)
84
84
85
+ _SCALARS_HISTOGRAMS_AND_PROFILE = frozenset (
86
+ (
87
+ scalars_metadata .PLUGIN_NAME ,
88
+ "profile" ,
89
+ )
90
+ )
91
+
92
+
85
93
# Sentinel for `_create_*` helpers, for arguments for which we want to
86
94
# supply a default other than the `None` used by the code under test.
87
95
_USE_DEFAULT = object ()
@@ -1095,7 +1103,23 @@ def test_thread_continuously_uploads(self):
1095
1103
1096
1104
logdir = self .get_temp_dir ()
1097
1105
mock_client = _create_mock_client ()
1098
- uploader = _create_uploader (mock_client , logdir )
1106
+ builder = _create_dispatcher (
1107
+ experiment_resource_name = _TEST_ONE_PLATFORM_EXPERIMENT_NAME ,
1108
+ api = mock_client ,
1109
+ allowed_plugins = _SCALARS_HISTOGRAMS_AND_PROFILE ,
1110
+ logdir = logdir ,
1111
+ )
1112
+ mock_rate_limiter = mock .create_autospec (util .RateLimiter )
1113
+ mock_bucket = _create_mock_blob_storage ()
1114
+
1115
+ uploader = _create_uploader (
1116
+ mock_client ,
1117
+ logdir ,
1118
+ allowed_plugins = _SCALARS_HISTOGRAMS_AND_PROFILE ,
1119
+ rpc_rate_limiter = mock_rate_limiter ,
1120
+ blob_storage_bucket = mock_bucket ,
1121
+ )
1122
+ uploader ._dispatcher = builder
1099
1123
uploader .create_experiment ()
1100
1124
1101
1125
# Convenience helpers for constructing expected requests.
@@ -1104,7 +1128,7 @@ def test_thread_continuously_uploads(self):
1104
1128
scalar = tensorboard_data .Scalar
1105
1129
1106
1130
# Directory with scalar data
1107
- writer = FileWriter (logdir )
1131
+ writer = FileWriter (os . path . join ( logdir , "a" ) )
1108
1132
metadata = summary_pb2 .SummaryMetadata (
1109
1133
plugin_data = summary_pb2 .SummaryMetadata .PluginData (
1110
1134
plugin_name = "scalars" , content = b"12345"
@@ -1121,18 +1145,43 @@ def test_thread_continuously_uploads(self):
1121
1145
value_metadata = metadata ,
1122
1146
)
1123
1147
writer .flush ()
1124
- writer_a = FileWriter (os .path .join (logdir , "a " ))
1148
+ writer_a = FileWriter (os .path .join (logdir , "b " ))
1125
1149
writer_a .add_test_summary ("qux" , simple_value = 9.0 , step = 2 )
1126
1150
writer_a .flush ()
1151
+
1152
+ # Directory with profile data
1153
+ prof_run_name = "2024_04_04_04_24_24"
1154
+ prof_path = os .path .join (
1155
+ logdir , profile_uploader .ProfileRequestSender .PROFILE_PATH
1156
+ )
1157
+ os .makedirs (prof_path )
1158
+ run_path = os .path .join (prof_path , prof_run_name )
1159
+ os .makedirs (run_path )
1160
+ tempfile .NamedTemporaryFile (
1161
+ prefix = "c" , suffix = ".xplane.pb" , dir = run_path , delete = False
1162
+ )
1163
+ self .assertNotEmpty (os .listdir (run_path ))
1164
+
1127
1165
uploader_thread = threading .Thread (target = uploader .start_uploading )
1128
1166
uploader_thread .start ()
1129
1167
time .sleep (5 )
1130
- self .assertEqual (3 , mock_client .create_tensorboard_time_series .call_count )
1168
+
1169
+ # Check create_time_series calls
1170
+ self .assertEqual (4 , mock_client .create_tensorboard_time_series .call_count )
1131
1171
call_args_list = mock_client .create_tensorboard_time_series .call_args_list
1132
- request = call_args_list [1 ][1 ]["tensorboard_time_series" ]
1133
- self .assertEqual ("scalars" , request .plugin_name )
1134
- self .assertEqual (b"12345" , request .plugin_data )
1172
+ request1 , request2 , request3 , request4 = (
1173
+ call_args_list [0 ][1 ]["tensorboard_time_series" ],
1174
+ call_args_list [1 ][1 ]["tensorboard_time_series" ],
1175
+ call_args_list [2 ][1 ]["tensorboard_time_series" ],
1176
+ call_args_list [3 ][1 ]["tensorboard_time_series" ],
1177
+ )
1178
+ self .assertEqual ("scalars" , request1 .plugin_name )
1179
+ self .assertEqual ("scalars" , request2 .plugin_name )
1180
+ self .assertEqual (b"12345" , request2 .plugin_data )
1181
+ self .assertEqual ("scalars" , request3 .plugin_name )
1182
+ self .assertEqual ("profile" , request4 .plugin_name )
1135
1183
1184
+ # Check write_tensorboard_experiment_data calls
1136
1185
self .assertEqual (1 , mock_client .write_tensorboard_experiment_data .call_count )
1137
1186
call_args_list = mock_client .write_tensorboard_experiment_data .call_args_list
1138
1187
request1 , request2 = (
0 commit comments