TST: add tests for keeping dtype in Series.update
State: closed

- [x] precursor to #23192
- [x] tests added / passed
- [x] passes `git diff upstream/master -u -- "*.py" | flake8 --diff`


Labels:
name: Testing
description: pandas testing functions or related to the test suite
name: Dtype Conversions
description: Unexpected or buggy dtype conversions

Comments:
Hello @h-vetinari! Thanks for updating the PR.

 - There are no PEP8 issues in the file [`pandas/tests/series/test_combine_concat.py`](https://github.com/h-vetinari/pandas/blob/9168f4e811550e515226160a281b24c9eb7bb540/pandas/tests/series/test_combine_concat.py) !



##### Comment last updated on November 18, 2018 at 16:17 Hours UTC
# [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23604?src=pr&el=h1) Report
> Merging [#23604](https://codecov.io/gh/pandas-dev/pandas/pull/23604?src=pr&el=desc) into [master](https://codecov.io/gh/pandas-dev/pandas/commit/deb7b4d5003b939f47e525bcdaceeea48622a73a?src=pr&el=desc) will **not change** coverage.
> The diff coverage is `n/a`.

[![Impacted file tree graph](https://codecov.io/gh/pandas-dev/pandas/pull/23604/graphs/tree.svg?width=650&token=eZ4WkYLtcO&height=150&src=pr)](https://codecov.io/gh/pandas-dev/pandas/pull/23604?src=pr&el=tree)

```diff
@@           Coverage Diff           @@
##           master   #23604   +/-   ##
=======================================
  Coverage   92.28%   92.28%           
=======================================
  Files         161      161           
  Lines       51451    51451           
=======================================
  Hits        47483    47483           
  Misses       3968     3968
```

| Flag | Coverage Δ | |
|---|---|---|
| #multiple | `90.68% <ø> (ø)` | :arrow_up: |
| #single | `42.28% <ø> (ø)` | :arrow_up: |


------

[Continue to review full report at Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23604?src=pr&el=continue).
> **Legend** - [Click here to learn more](https://docs.codecov.io/docs/codecov-delta)
> `Δ = absolute <relative> (impact)`, `ø = not affected`, `? = missing data`
> Powered by [Codecov](https://codecov.io/gh/pandas-dev/pandas/pull/23604?src=pr&el=footer). Last update [deb7b4d...0f50a25](https://codecov.io/gh/pandas-dev/pandas/pull/23604?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

@jreback 
Incorporated your feedback, and it's green.
@jreback 
Incorporated feedback; plus, it's green and ready to go.
@jreback 
Please don't forget this one. :)
@jreback
I tried to circumvent the `try-except` again, but it's pretty pointless (not even `.astype(errors='ignore')` helps).

To demonstrate the difference, I've added an explicitly parametrized test with the expected results, and without using a try-catch. You'll see that, in this format, it's actually much much harder to see the underlying logic.

And it's just not (reasonably) extensible. I found some minor differences between dtypes, and can *easily* extend the test with the try-catch (1-line-diff commit coming momentarily). In the demo for the case you want, this would *multiply* the number of expected results I have to explicitly pass, without a reader being able to grok what's actually happening.
> remove the other, rename and ping.

Ping, as requested.
thanks!