def testNestedText(self):
     blue_text = text.TypedText('blue', style_test_base.TestTextTypes.BLUE)
     text_with_nested_text = text.TypedText(['Text: ', blue_text, '.'])
     parsed_text = self.parser.ParseTypedTextToString(text_with_nested_text)
     self.assertEqual(
         'Text: {blue}blue{reset}.'.format(blue=self.blue,
                                           reset=self.reset), parsed_text)
class ProgressTrackerSymbolsUnicode(ProgressTrackerSymbols):
    """Characters used by progress trackers."""
    @property
    def spin_marks(self):
        return ['⠏', '⠛', '⠹', '⠼', '⠶', '⠧']

    success = text.TypedText(['✓'], text_type=text.TextTypes.PT_SUCCESS)
    failed = text.TypedText(['X'], text_type=text.TextTypes.PT_FAILURE)
    interrupted = '-'
    not_started = '.'
    prefix_length = 2
Exemple #3
0
def _PrintResourceChange(operation,
                         resource,
                         kind,
                         is_async,
                         details,
                         failed,
                         operation_past_tense=None):
    """Prints a status message for operation on resource.

  The non-failure status messages are disabled when user output is disabled.

  Args:
    operation: str, The completed operation name.
    resource: str, The resource name.
    kind: str, The resource kind (instance, cluster, project, etc.).
    is_async: bool, True if the operation is in progress.
    details: str, Extra details appended to the message. Keep it succinct.
    failed: str, Failure message. For commands that operate on multiple
      resources and report all successes and failures before exiting. Failure
      messages use log.error. This will display the message on the standard
      error even when user output is disabled.
    operation_past_tense: str, The past tense version of the operation verb.
      If None assumes operation + 'd'
  """
    msg = []
    if failed:
        msg.append('Failed to ')
        msg.append(operation)
    elif is_async:
        msg.append(operation.capitalize())
        msg.append(' in progress for')
    else:
        verb = operation_past_tense or '{0}d'.format(operation)
        msg.append('{0}'.format(verb.capitalize()))

    if kind:
        msg.append(' ')
        msg.append(kind)
    if resource:
        msg.append(' ')
        msg.append(text.TextTypes.RESOURCE_NAME(six.text_type(resource)))
    if details:
        msg.append(' ')
        msg.append(details)

    if failed:
        msg.append(': ')
        msg.append(failed)
    period = '' if str(msg[-1]).endswith('.') else '.'
    msg.append(period)
    msg = text.TypedText(msg)
    writer = error if failed else status.Print
    writer(msg)
 def testNestedTextAttributesReset(self):
     project_name = style_test_base.TestTextTypes.BOLD('cool-project')
     instance_name = style_test_base.TestTextTypes.BOLD('my-instance')
     resource_path = style_test_base.TestTextTypes.BLUE_AND_BRACKETS(
         'projects/', project_name, '/instance/', instance_name)
     success_message = style_test_base.TestTextTypes.ITALICS('Success!')
     message = text.TypedText(
         ['Created instance ', resource_path, '. ', success_message])
     parsed_text = self.parser.ParseTypedTextToString(message)
     self.assertEqual(
         'Created instance {blue}[projects/{blue_bold}cool-project{no_blue_bold}'
         '{blue}/instance/{blue_bold}my-instance{no_blue_bold}{blue}]{reset}. '
         '{italics}Success!{no_italics}'.format(
             blue=self.blue,
             reset=self.reset,
             blue_bold=self.blue_bold,
             italics=self.italics,
             no_blue_bold=self.no_blue_bold,
             no_italics=self.no_italics), parsed_text)
 def testTexLength(self):
     nested_text = text.TypedText([
         'asdf',
         text.TypedText(['fdsa'], text_type=text.TextTypes.RESOURCE_NAME)
     ])
     self.assertEqual(len(nested_text), 8)
 def testTextRightAdd(self):
     right = text.TypedText(['Right'])
     self.assertEqual(('Left' + right).texts, ['Left', right])
 def testTextAdd(self):
     left = text.TypedText(['Left'])
     self.assertEqual((left + 'Right').texts, [left, 'Right'])
 def testAttributes(self):
     bold_text = text.TypedText('bold', style_test_base.TestTextTypes.BOLD)
     parsed_text = self.parser.ParseTypedTextToString(bold_text)
     self.assertEqual(self.bold + 'bold' + self.no_bold, parsed_text)
 def testStringFormatting(self):
     blue_text = text.TypedText(
         'blue', style_test_base.TestTextTypes.BLUE_AND_BRACKETS)
     parsed_text = self.parser.ParseTypedTextToString(blue_text)
     self.assertEqual(self.blue + '[blue]' + self.reset, parsed_text)
 def testBasicColoring(self):
     blue_text = text.TypedText('blue', style_test_base.TestTextTypes.BLUE)
     parsed_text = self.parser.ParseTypedTextToString(blue_text)
     self.assertEqual(self.blue + 'blue' + self.reset, parsed_text)