#!/p4/common/python/bin/python3 import os import sys import re from P4 import P4, P4Exception P4PORT = os.getenv ('P4PORT', 'UNDEFINED_P4PORT_VALUE') P4USER = os.getenv ('P4USER', 'UNDEFINED_P4USER_VALUE') P4CLIENT = 'DTClient' P4CONFIG = os.getenv ('P4CONFIG', 'UNDEFINED_P4CONFIG_VALUE') P4BIN = os.getenv("P4BIN", "p4") class Main: def initP4(self): self.p4 = P4() self.p4.prog = 'a.py' self.p4.version = '1.0' self.p4.port = P4PORT self.p4.user = P4USER self.p4.client = P4CLIENT self.p4.ticket_file = os.getenv ('P4TICKETS', '/p4/1/.p4tickets') # Ensure this matches the P4Python version used. # API Level 79 is for p4d 2015.2. self.p4.api_level = 79 self.stream = None self.streamDepot = None self.streamDepth = None self.streamShortName = None try: self.p4.connect() except P4Exception: print ("Unable to connect to Perforce at P4PORT=%s.\n\nThe error from the Perforce server is:" % P4PORT) for e in self.p4.errors: print (e) for w in self.p4.warnings: print (w) return False try: print ("Doing 'p4 login -s' login status check.") self.p4.run_login('-s') except P4Exception: userMessage = "Your attempt to submit changelist %s has been rejected because the CBD system user [%s] is not logged into the server [P4PORT=%s]. Please contact your Perforce Administrator for help.\n\nThe error from the Perforce server is:\n" % (self.myOptions.changelist, P4USER, P4PORT) print (userMessage) for e in self.p4.errors: print (e) for w in self.p4.warnings: print (w) return False return True def run_tests(self): print ("==============================================================================") for depot in ('pb', 'jam', 'DeepThought'): dData = self.p4.fetch_depot(depot) self.streamDepot = depot # print (dData) if (dData['StreamDepth']): self.streamDepth=re.sub ('^.*/', '', dData['StreamDepth']) self.streamDepth=int(self.streamDepth) else: self.streamDepth=1 print ("Depot %s depth is %s.\n" % (self.streamDepot,self.streamDepth)) if (self.streamDepth > 1): file = '//%s/LevelTwo/MAIN/DeepThought.cbdsst' % self.streamDepot else: file = '//%s/main/%s.cbdsst' % (self.streamDepot, self.streamDepot) print ("Looking at file: %s" % file) pathElements = file.split('/') #print ("PE=%s" % pathElements) self.streamShortName = pathElements[self.streamDepth+2] self.stream = '//%s/%s' % (self.streamDepot, pathElements[3]) i = 1 while (i < self.streamDepth): #print ("I=%s. Before: %s" % (i, self.stream)) self.stream = "%s/%s" % (self.stream, pathElements[i+3]) #print ("I=%s. After: %s" % (i, self.stream)) i =i +1 print ("D=[%s] SN=[%s] S=[%s]" % (self.streamDepot, self.streamShortName, self.stream)) print ("------------------------------------------------------------------------------") return True if __name__ == '__main__': """ Main Program """ main = Main(*sys.argv[1:]) if (not Main.initP4(main)): sys.exit (1) print ("Ready.") if (Main.run_tests(main)): sys.exit (0) else: sys.exit (1)
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 19351 | C. Thomas Tyler |
Released CBD/MultiArch/2016.2/19348 (2016/05/10). Copy Up using 'p4 copy -r -b perforce_software-cbd-dev'. |
||
//guest/perforce_software/cbd/dev/test/StreamDepthSnippet.sh | |||||
#1 | 19337 | C. Thomas Tyler |
Added support for StreamDepth > 1. Enhanced test cases for StreamDepth > 1. |