| 276 | |
| 277 | |
| 278 | def test_schema_to_string_with_metadata(): |
| 279 | lorem = """\ |
| 280 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla accumsan vel |
| 281 | turpis et mollis. Aliquam tincidunt arcu id tortor blandit blandit. Donec |
| 282 | eget leo quis lectus scelerisque varius. Class aptent taciti sociosqu ad |
| 283 | litora torquent per conubia nostra, per inceptos himenaeos. Praesent |
| 284 | faucibus, diam eu volutpat iaculis, tellus est porta ligula, a efficitur |
| 285 | turpis nulla facilisis quam. Aliquam vitae lorem erat. Proin a dolor ac libero |
| 286 | dignissim mollis vitae eu mauris. Quisque posuere tellus vitae massa |
| 287 | pellentesque sagittis. Aenean feugiat, diam ac dignissim fermentum, lorem |
| 288 | sapien commodo massa, vel volutpat orci nisi eu justo. Nulla non blandit |
| 289 | sapien. Quisque pretium vestibulum urna eu vehicula.""" |
| 290 | # ARROW-7063 |
| 291 | my_schema = pa.schema([pa.field("foo", "int32", False, |
| 292 | metadata={"key1": "value1"}), |
| 293 | pa.field("bar", "string", True, |
| 294 | metadata={"key3": "value3"})], |
| 295 | metadata={"lorem": lorem}) |
| 296 | |
| 297 | assert my_schema.to_string() == f"""\ |
| 298 | foo: int32 not null |
| 299 | -- field metadata -- |
| 300 | key1: 'value1' |
| 301 | bar: string |
| 302 | -- field metadata -- |
| 303 | key3: 'value3' |
| 304 | -- schema metadata -- |
| 305 | lorem: '{lorem[:65]}' + {len(lorem) - 65}""" |
| 306 | |
| 307 | # Metadata that exactly fits |
| 308 | result = pa.schema([('f0', 'int32')], |
| 309 | metadata={'key': 'value' + 'x' * 62}).to_string() |
| 310 | assert result == """\ |
| 311 | f0: int32 |
| 312 | -- schema metadata -- |
| 313 | key: 'valuexxxxxxxxxxxxxxxxxxxxxxxxxxxxx\ |
| 314 | xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'""" |
| 315 | |
| 316 | assert my_schema.to_string(truncate_metadata=False) == f"""\ |
| 317 | foo: int32 not null |
| 318 | -- field metadata -- |
| 319 | key1: 'value1' |
| 320 | bar: string |
| 321 | -- field metadata -- |
| 322 | key3: 'value3' |
| 323 | -- schema metadata -- |
| 324 | lorem: '{lorem[:92]} (... {len(lorem) - 91} chars omitted)""" |
| 325 | |
| 326 | assert my_schema.to_string(truncate_metadata=False, |
| 327 | show_field_metadata=False, |
| 328 | element_size_limit=50) == f"""\ |
| 329 | foo: int32 not null |
| 330 | bar: string |
| 331 | -- schema metadata -- |
| 332 | lorem: '{lorem[:50 - 8]} (... {len(lorem) - (50 - 9)} chars omitted)""" |
| 333 | |
| 334 | assert my_schema.to_string(truncate_metadata=False, |
| 335 | show_schema_metadata=False) == """\ |