예제 #1
0
    def test_no_attributes(self, p, config):
        def m1(divider=',', **kwargs):
            return divider.join(kwargs.keys()) + divider

        config['themes/test/default']['segments'] = {
            'left': [{
                'function': 'bar.m1'
            }]
        }
        with replace_item(sys.modules, 'bar', Args(m1=m1)):
            self.assertRenderEqual(p, '{56} pl,{6-}>>{--}')
예제 #2
0
	def test_no_attributes(self, p, config):
		def m1(divider=',', **kwargs):
			return divider.join(kwargs.keys()) + divider
		config['themes/test/default']['segments'] = {
			'left': [
				{
					'function': 'bar.m1'
				}
			]
		}
		with replace_item(sys.modules, 'bar', Args(m1=m1)):
			self.assertRenderEqual(p, '{56} pl,{6-}>>{--}')
예제 #3
0
    def test_exinclude_function(self, p, config):
        config['themes/test/default']['segments'] = {
            'left': [
                highlighted_string('s1', 'g1', exclude_function='mod.foo'),
                highlighted_string('s2',
                                   'g1',
                                   exclude_function='mod.foo',
                                   include_function='mod.bar'),
                highlighted_string('s3', 'g1', include_function='mod.bar'),
            ]
        }
        launched = set()
        fool = [None]
        barl = [None]

        def foo(*args, **kwargs):
            launched.add('foo')
            self.assertEqual(set(kwargs.keys()),
                             set(('pl', 'segment_info', 'mode')))
            self.assertEqual(args, ())
            return fool[0]

        def bar(*args, **kwargs):
            launched.add('bar')
            self.assertEqual(set(kwargs.keys()),
                             set(('pl', 'segment_info', 'mode')))
            self.assertEqual(args, ())
            return barl[0]

        with replace_item(sys.modules, 'mod', Args(foo=foo, bar=bar)):
            fool[0] = True
            barl[0] = True
            self.assertRenderEqual(p, '{56} s3{6-}>>{--}')
            self.assertEqual(launched, set(('foo', 'bar')))

            fool[0] = False
            barl[0] = True
            self.assertRenderEqual(p,
                                   '{56} s1{56}>{56}s2{56}>{56}s3{6-}>>{--}')
            self.assertEqual(launched, set(('foo', 'bar')))

            fool[0] = False
            barl[0] = False
            self.assertRenderEqual(p, '{56} s1{6-}>>{--}')
            self.assertEqual(launched, set(('foo', 'bar')))

            fool[0] = True
            barl[0] = False
            self.assertRenderEqual(p, '{--}')
            self.assertEqual(launched, set(('foo', 'bar')))
예제 #4
0
    def test_truncate(self, p, config):
        def m1(divider=',', **kwargs):
            return divider.join(kwargs.keys()) + divider

        def truncate(pl, amount, segment, **kwargs):
            return segment['contents'][:-amount]

        m1.truncate = truncate
        config['themes/test/default']['segments'] = {
            'left': [{
                'function': 'bar.m1'
            }]
        }
        with replace_item(sys.modules, 'bar', Args(m1=m1)):
            self.assertRenderEqual(p, '{56} p{6-}>>{--}', width=4)
예제 #5
0
    def test_expand(self, p, config):
        def m1(divider=',', **kwargs):
            return divider.join(kwargs.keys()) + divider

        def expand(pl, amount, segment, **kwargs):
            return ('-' * amount) + segment['contents']

        m1.expand = expand
        config['themes/test/default']['segments'] = {
            'left': [{
                'function': 'bar.m1',
                'width': 'auto'
            }]
        }
        with replace_item(sys.modules, 'bar', Args(m1=m1)):
            self.assertRenderEqual(p, '{56} ----pl,{6-}>>{--}', width=10)
예제 #6
0
	def test_truncate(self, p, config):
		def m1(divider=',', **kwargs):
			return divider.join(kwargs.keys()) + divider

		def truncate(pl, amount, segment, **kwargs):
			return segment['contents'][:-amount]

		m1.truncate = truncate
		config['themes/test/default']['segments'] = {
			'left': [
				{
					'function': 'bar.m1'
				}
			]
		}
		with replace_item(sys.modules, 'bar', Args(m1=m1)):
			self.assertRenderEqual(p, '{56} p{6-}>>{--}', width=4)
예제 #7
0
	def test_expand(self, p, config):
		def m1(divider=',', **kwargs):
			return divider.join(kwargs.keys()) + divider

		def expand(pl, amount, segment, **kwargs):
			return ('-' * amount) + segment['contents']

		m1.expand = expand
		config['themes/test/default']['segments'] = {
			'left': [
				{
					'function': 'bar.m1',
					'width': 'auto'
				}
			]
		}
		with replace_item(sys.modules, 'bar', Args(m1=m1)):
			self.assertRenderEqual(p, '{56} ----pl,{6-}>>{--}', width=10)
예제 #8
0
	def test_exinclude_function(self, p, config):
		config['themes/test/default']['segments'] = {
			'left': [
				highlighted_string('s1', 'g1', exclude_function='mod.foo'),
				highlighted_string('s2', 'g1', exclude_function='mod.foo', include_function='mod.bar'),
				highlighted_string('s3', 'g1', include_function='mod.bar'),
			]
		}
		launched = set()
		fool = [None]
		barl = [None]

		def foo(*args, **kwargs):
			launched.add('foo')
			self.assertEqual(set(kwargs.keys()), set(('pl', 'segment_info', 'mode')))
			self.assertEqual(args, ())
			return fool[0]

		def bar(*args, **kwargs):
			launched.add('bar')
			self.assertEqual(set(kwargs.keys()), set(('pl', 'segment_info', 'mode')))
			self.assertEqual(args, ())
			return barl[0]

		with replace_item(sys.modules, 'mod', Args(foo=foo, bar=bar)):
			fool[0] = True
			barl[0] = True
			self.assertRenderEqual(p, '{56} s3{6-}>>{--}')
			self.assertEqual(launched, set(('foo', 'bar')))

			fool[0] = False
			barl[0] = True
			self.assertRenderEqual(p, '{56} s1{56}>{56}s2{56}>{56}s3{6-}>>{--}')
			self.assertEqual(launched, set(('foo', 'bar')))

			fool[0] = False
			barl[0] = False
			self.assertRenderEqual(p, '{56} s1{6-}>>{--}')
			self.assertEqual(launched, set(('foo', 'bar')))

			fool[0] = True
			barl[0] = False
			self.assertRenderEqual(p, '{--}')
			self.assertEqual(launched, set(('foo', 'bar')))
예제 #9
0
	def test_exinclude_modes_override_functions(self, p, config):
		config['themes/test/default']['segments'] = {
			'left': [
				highlighted_string('s1', 'g1', exclude_function='mod.foo', exclude_modes=['m2']),
				highlighted_string('s2', 'g1', exclude_function='mod.foo', include_modes=['m2']),
				highlighted_string('s3', 'g1', include_function='mod.foo', exclude_modes=['m2']),
				highlighted_string('s4', 'g1', include_function='mod.foo', include_modes=['m2']),
			]
		}
		fool = [None]

		def foo(*args, **kwargs):
			return fool[0]

		with replace_item(sys.modules, 'mod', Args(foo=foo)):
			fool[0] = True
			self.assertRenderEqual(p, '{56} s4{6-}>>{--}', mode='m2')
			self.assertRenderEqual(p, '{56} s3{56}>{56}s4{6-}>>{--}', mode='m1')

			fool[0] = False
			self.assertRenderEqual(p, '{56} s2{56}>{56}s4{6-}>>{--}', mode='m2')
			self.assertRenderEqual(p, '{56} s1{6-}>>{--}', mode='m1')
예제 #10
0
    def test_segment_datas(self, p, config):
        def m1(divider=',', **kwargs):
            return divider.join(kwargs.keys()) + divider

        m1.powerline_segment_datas = {
            UT: {
                'args': {
                    'divider': ';'
                }
            },
            'ascii': {
                'args': {
                    'divider': '--'
                }
            }
        }
        config['themes/test/default']['segments'] = {
            'left': [{
                'function': 'bar.m1'
            }]
        }
        with replace_item(sys.modules, 'bar', Args(m1=m1)):
            self.assertRenderEqual(p, '{56} pl;{6-}>>{--}')
예제 #11
0
	def test_segment_datas(self, p, config):
		def m1(divider=',', **kwargs):
			return divider.join(kwargs.keys()) + divider
		m1.powerline_segment_datas = {
			UT: {
				'args': {
					'divider': ';'
				}
			},
			'ascii': {
				'args': {
					'divider': '--'
				}
			}
		}
		config['themes/test/default']['segments'] = {
			'left': [
				{
					'function': 'bar.m1'
				}
			]
		}
		with replace_item(sys.modules, 'bar', Args(m1=m1)):
			self.assertRenderEqual(p, '{56} pl;{6-}>>{--}')