diff --git a/pyupgrade/_main.py b/pyupgrade/_main.py
index d8e359d..b530008 100644
--- a/pyupgrade/_main.py
+++ b/pyupgrade/_main.py
@@ -391,6 +391,7 @@ def _build_import_removals() -> Dict[Version, Dict[str, Tuple[str, ...]]]:
         ((3, 8), ()),
         ((3, 9), ()),
         ((3, 10), ()),
+        ((3, 11), ()),
     )
 
     prev: Tuple[str, ...] = ()

diff --git a/tests/main_test.py b/tests/main_test.py
index 9f7f16b..b8f507f 100644
--- a/tests/main_test.py
+++ b/tests/main_test.py
@@ -1,4 +1,5 @@
 import io
+import re
 import sys
 from unittest import mock
 
@@ -11,19 +12,12 @@ def test_main_trivial():
     assert main(()) == 0
 
 
-@pytest.mark.parametrize(
-    'args',
-    (
-        (),
-        ('--py3-plus',),
-        ('--py36-plus',),
-        ('--py37-plus',),
-        ('--py38-plus',),
-        ('--py39-plus',),
-        ('--py310-plus',),
-    ),
-)
-def test_main_noop(tmpdir, args):
+def test_main_noop(tmpdir, capsys):
+    with pytest.raises(SystemExit):
+        main(('--help',))
+    out, err = capsys.readouterr()
+    version_options = sorted(set(re.findall(r'--py\d+-plus', out)))
+
     s = '''\
 from sys import version_info
 x=version_info
@@ -32,9 +26,14 @@ def f():
 '''
     f = tmpdir.join('f.py')
     f.write(s)
-    assert main((f.strpath, *args)) == 0
+
+    assert main((f.strpath,)) == 0
     assert f.read() == s
 
+    for version_option in version_options:
+        assert main((f.strpath, version_option)) == 0
+        assert f.read() == s
+
 
 def test_main_changes_a_file(tmpdir, capsys):
     f = tmpdir.join('f.py')

`--py311-plus` option not working
`--py311-plus` was added in #426 but when I run with it I get this:
```
Traceback (most recent call last):
  File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
    exec(code, run_globals)
  File "/home/molkree/orca-action-venv/lib/python3.8/site-packages/pyupgrade/__main__.py", line 4, in <module>
    exit(main())
  File "/home/molkree/orca-action-venv/lib/python3.8/site-packages/pyupgrade/_main.py", line 927, in main
    ret |= _fix_file(filename, args)
  File "/home/molkree/orca-action-venv/lib/python3.8/site-packages/pyupgrade/_main.py", line 871, in _fix_file
    contents_text = _fix_tokens(contents_text, min_version=args.min_version)
  File "/home/molkree/orca-action-venv/lib/python3.8/site-packages/pyupgrade/_main.py", line 509, in _fix_tokens
    _fix_import_removals(tokens, i, min_version)
  File "/home/molkree/orca-action-venv/lib/python3.8/site-packages/pyupgrade/_main.py", line 433, in _fix_import_removals
    if modname not in IMPORT_REMOVALS[min_version]:
KeyError: (3, 11)
```

I think it just wasn't added here:
https://github.com/asottile/pyupgrade/blob/4f1369bf114fd60cbe155e29a79fdd715e1e8f3e/pyupgrade/_main.py#L381-L394

There is still time to fix this before fall 2022 though 👀
tests/main_test.py::test_main_noop
tests/main_test.py::test_main_trivial tests/main_test.py::test_main_changes_a_file tests/main_test.py::test_main_keeps_line_endings tests/main_test.py::test_main_syntax_error tests/main_test.py::test_main_non_utf8_bytes tests/main_test.py::test_main_py27_syntaxerror_coding tests/main_test.py::test_keep_percent_format tests/main_test.py::test_keep_mock tests/main_test.py::test_py3_plus_argument_unicode_literals tests/main_test.py::test_py3_plus_super tests/main_test.py::test_py3_plus_new_style_classes tests/main_test.py::test_py3_plus_oserror tests/main_test.py::test_py36_plus_fstrings tests/main_test.py::test_py37_plus_removes_annotations tests/main_test.py::test_py38_plus_removes_no_arg_decorators tests/main_test.py::test_noop_token_error tests/main_test.py::test_main_exit_zero_even_if_changed tests/main_test.py::test_main_stdin_no_changes tests/main_test.py::test_main_stdin_with_changes