Include graph of git log and node info on error
To debug test failures include a graph git log of the generated tree along with the list of nodes and corresponding commit ids. Change-Id: Ia995dee92b91dc4e8e7b1b3e49b96118619c36ad
This commit is contained in:
		
				
					committed by
					
						
						Darragh Bailey
					
				
			
			
				
	
			
			
			
						parent
						
							013c885799
						
					
				
				
					commit
					14122e2205
				
			@@ -19,7 +19,9 @@ import tempfile
 | 
			
		||||
 | 
			
		||||
import fixtures
 | 
			
		||||
import git
 | 
			
		||||
from pprint import pformat
 | 
			
		||||
import testtools
 | 
			
		||||
from testtools.content import text_content
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
LOREM_IPSUM = """\
 | 
			
		||||
@@ -142,6 +144,8 @@ class BaseTestCase(testtools.TestCase):
 | 
			
		||||
        self.repo = self.testrepo.repo
 | 
			
		||||
        self.git = self.repo.git
 | 
			
		||||
 | 
			
		||||
        self.addOnException(self.attach_graph_info)
 | 
			
		||||
 | 
			
		||||
    def _build_git_tree(self, graph_def, branches=[]):
 | 
			
		||||
        """Helper function to build a git repository from a graph definition
 | 
			
		||||
        of nodes and their parent nodes. A list of branches may be provided
 | 
			
		||||
@@ -238,3 +242,11 @@ class BaseTestCase(testtools.TestCase):
 | 
			
		||||
    def _commits_from_nodes(self, nodes=[]):
 | 
			
		||||
 | 
			
		||||
        return [self._graph[n] for n in nodes]
 | 
			
		||||
 | 
			
		||||
    def attach_graph_info(self, exc_info):
 | 
			
		||||
        if not self._graph:
 | 
			
		||||
            return
 | 
			
		||||
        self.addDetail('graph-dict', text_content(pformat(self._graph)))
 | 
			
		||||
        self.addDetail('git-log-with-graph',
 | 
			
		||||
                       text_content(self.git.log(graph=True, oneline=True,
 | 
			
		||||
                                                 decorate=True, all=True)))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user