Ronny Pfannschmidt avatar Ronny Pfannschmidt committed 83d4e00

test and work around issue 21

Comments (0)

Files changed (2)

     'ignored': 'I',
 }
 
+# XXX: todo / steal color coding from pygments terminal writer
 list_colors = {
-    'clean': None,
-    'unknown': '*teal*',
+    #'clean': '',
+    'unknown': 'purple',
     'modified': 'red',
     'added': 'blue',
-    'removed': 'fuscia',
+    'removed': 'blue',
     'deleted': 'yellow',
-    'ignored': 'turquoise',
+    #'ignored': 'grey',
 }
 
 
+def output_state(tw, st):
+    output = list_letters.get(st.state, '*').ljust(2)
+    color = list_colors.get(st.state)
+    kw = {color:True} if color else {}
+    tw.write(output, bold=True, **kw)
+    tw.line(st.relpath)
+
 def do_status(vc, opts, args):
     tw = TerminalWriter()
 
-    def output_state(st):
-        output = list_letters.get(st.state, '*').ljust(2)
-        color = list_colors.get(st.state)
-        tw.write(output, bold=True, **{color:True, })
-        tw.line(st.relpath)
-
     hidden_states = []
 
     if not opts.list_all:
 
     for st in vc.status(recursive=not opts.list_nonrecursive):
         if st.state not in hidden_states:
-            output_state(st)
+            output_state(tw, st)
 
     return 0
 

tests/test_client.py

+import py
+from anyvc.client import output_state, list_colors
+
+items = list(list_colors)
+
+
+class MockState:
+    relpath = '.'
+    def __init__(self, state):
+        self.state = state
+
+@py.test.mark.parametrize('state', items, ids=items)
+def test_output_state(state):
+    tw = py.io.TerminalWriter()
+    tw.hasmarkup = True
+
+    output_state(tw, MockState(state))
+
+    
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.