| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -214,6 +214,19 @@ def _set_reference(self, ref): | |||
| 214 | 214 | # alias | |
| 215 | 215 | ref = reference | |
| 216 | 216 | ||
| 217 | + def is_valid(self): | ||
| 218 | + """ | ||
| 219 | + Returns | ||
| 220 | + True if the reference is valid, hence it can be read and points to | ||
| 221 | + a valid object or reference. | ||
| 222 | + """ | ||
| 223 | + try: | ||
| 224 | + self.commit | ||
| 225 | + except (OSError, ValueError): | ||
| 226 | + return False | ||
| 227 | + else: | ||
| 228 | + return True | ||
| 229 | + | ||
| 217 | 230 | @property | |
| 218 | 231 | def is_detached(self): | |
| 219 | 232 | """ | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -66,6 +66,12 @@ def test_refs(self): | |||
| 66 | 66 | types_found.add(type(ref)) | |
| 67 | 67 | assert len(types_found) == 3 | |
| 68 | 68 | ||
| 69 | + def test_is_valid(self): | ||
| 70 | + assert Reference(self.rorepo, 'refs/doesnt/exist').is_valid() == False | ||
| 71 | + assert self.rorepo.head.is_valid() | ||
| 72 | + assert self.rorepo.head.reference.is_valid() | ||
| 73 | + assert SymbolicReference(self.rorepo, 'hellothere').is_valid() == False | ||
| 74 | + | ||
| 69 | 75 | @with_rw_repo('0.1.6') | |
| 70 | 76 | def test_head_reset(self, rw_repo): | |
| 71 | 77 | cur_head = rw_repo.head | |
| Back | FazBrowse Home | New Git URL |
0 commit comments