Fixed sorting for non editable requirement urls
diff --git a/pre_commit_hooks/requirements_txt_fixer.py b/pre_commit_hooks/requirements_txt_fixer.py
index eff7935..1aa0dff 100644
--- a/pre_commit_hooks/requirements_txt_fixer.py
+++ b/pre_commit_hooks/requirements_txt_fixer.py
@@ -21,8 +21,9 @@
@property
def name(self): # type: () -> bytes
assert self.value is not None, self.value
- if self.value.startswith(b'-e '):
- return self.value.lower().partition(b'=')[-1]
+ for egg in (b'#egg=', b'&egg='):
+ if egg in self.value:
+ return self.value.lower().partition(egg)[-1]
return self.value.lower().partition(b'==')[0]
diff --git a/tests/requirements_txt_fixer_test.py b/tests/requirements_txt_fixer_test.py
index 2e2eab6..7b9b07d 100644
--- a/tests/requirements_txt_fixer_test.py
+++ b/tests/requirements_txt_fixer_test.py
@@ -45,6 +45,11 @@
),
(b'bar\npkg-resources==0.0.0\nfoo\n', FAIL, b'bar\nfoo\n'),
(b'foo\npkg-resources==0.0.0\nbar\n', FAIL, b'bar\nfoo\n'),
+ (
+ b'git+ssh://git_url@tag#egg=ocflib\nDjango\nijk\n',
+ FAIL,
+ b'Django\nijk\ngit+ssh://git_url@tag#egg=ocflib\n',
+ ),
),
)
def test_integration(input_s, expected_retval, output, tmpdir):