File tree 2 files changed +19
-0
lines changed
2 files changed +19
-0
lines changed 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
You can’t perform that action at this time.
0 commit comments