Repository: arrow-py/arrow

Issue:
Should arrow.get(None) work?
As per the title should the following work?

```shell
>>> arrow.get(None)
<Arrow [2020-12-20T20:12:12.631217+00:00]>
```

https://github.com/arrow-py/arrow/blob/master/arrow/factory.py#L169

There could be an issue where someone unintentionally passes `None` in but gets no error. Realistically is this used?

Discussion:
Armaxxx: Also I'm not sure how the errors are happening, probably trying to run some None valued get command.
Armaxxx: I added an assertRaises from unittest
codecov[bot]: # [Codecov](https://codecov.io/gh/arrow-py/arrow/pull/906?src=pr&el=h1) Report
> Merging [#906](https://codecov.io/gh/arrow-py/arrow/pull/906?src=pr&el=desc) (5d5b32b) into [master](https://codecov.io/gh/arrow-py/arrow/commit/6825f8a1b70446571cde6b95c1f57bf8d6d7932c?el=desc) (6825f8a) will **not change** coverage.
> The diff coverage is `100.00%`.

[![Impacted file tree graph](https://codecov.io/gh/arrow-py/arrow/pull/906/graphs/tree.svg?width=650&height=150&src=pr&token=4EkGnFsIGn)](https://codecov.io/gh/arrow-py/arrow/pull/906?src=pr&el=tree)

```diff
@@            Coverage Diff            @@
##            master      #906   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            9         9           
  Lines         1817      1817           
  Branches       318       318           
=========================================
  Hits          1817      1817           
```


| [Impacted Files](https://codecov.io/gh/arrow-py/arrow/pull/906?src=pr&el=tree) | Coverage Δ | |
|---|---|---|
| [arrow/factory.py](https://codecov.io/gh/arrow-py/arrow/pull/906/diff?src=pr&el=tree#diff-YXJyb3cvZmFjdG9yeS5weQ==) | `100.00% <100.00%> (ø)` | |

------

[Continue to review full report at Codecov](https://codecov.io/gh/arrow-py/arrow/pull/906?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/arrow-py/arrow/pull/906?src=pr&el=footer). Last update [6825f8a...5d5b32b](https://codecov.io/gh/arrow-py/arrow/pull/906?src=pr&el=lastupdated). Read the [comment docs](https://docs.codecov.io/docs/pull-request-comments).

Armaxxx: Weird, the error is in test-months on humanize class, on the test_arrow.py file, but I didn't fiddle with it.
jadchaar: @Armaxxx yeah this is due to a recent change to our humanize bounds. @systemcatch ,@krisfremen, and I need to take a closer look (ref https://github.com/arrow-py/arrow/issues/890). Your changes now look good to go though!

Patch:
diff --git a/arrow/factory.py b/arrow/factory.py
index b251704..9aa44b8 100644
--- a/arrow/factory.py
+++ b/arrow/factory.py
@@ -165,9 +165,9 @@ class ArrowFactory:
         if arg_count == 1:
             arg = args[0]
 
-            # (None) -> now, @ utc.
+            # (None) -> raises an exception
             if arg is None:
-                return self.type.utcnow()
+                raise TypeError("Cannot parse argument of type None.")
 
             # try (int, float) -> from timestamp with tz
             elif not isinstance(arg, str) and is_timestamp(arg):


Test patch:
diff --git a/tests/test_factory.py b/tests/test_factory.py
index b954d16..5e0020d 100644
--- a/tests/test_factory.py
+++ b/tests/test_factory.py
@@ -25,10 +25,8 @@ class TestGet:
         assert no_arg == one_arg
 
     def test_one_arg_none(self):
-
-        assert_datetime_equality(
-            self.factory.get(None), datetime.utcnow().replace(tzinfo=tz.tzutc())
-        )
+        with pytest.raises(TypeError):
+            self.factory.get(None)
 
     def test_struct_time(self):