This file is indexed.

/usr/lib/python3/dist-packages/plainbox/impl/test_symbol.py is in python3-plainbox 0.5.3-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# This file is part of Checkbox.
#
# Copyright 2013 Canonical Ltd.
# Written by:
#   Zygmunt Krynicki <zygmunt.krynicki@canonical.com>
#
# Checkbox is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 3,
# as published by the Free Software Foundation.

#
# Checkbox is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with Checkbox.  If not, see <http://www.gnu.org/licenses/>.

"""
plainbox.impl.test_symbol
=========================

Test definitions for plainbox.impl.symbol module
"""

import unittest

from plainbox.impl.symbol import SymbolDef, Symbol


class SymbolTests(unittest.TestCase):
    """
    Tests for Symbol class
    """

    def test_symbol_str(self):
        """
        verify that str() produces the symbol name
        """
        self.assertEqual(str(Symbol('foo')), 'foo')

    def test_symbol_repr(self):
        """
        verify that repr() produces the symbol object
        """
        self.assertEqual(repr(Symbol('foo')), "Symbol('foo')")

    def test_symbol_hash(self):
        """
        verify that hash() hashes the symbol name
        """
        self.assertEqual(hash(Symbol('foo')), hash('foo'))

    def test_symbol_name(self):
        """
        verify that Symbol.name returns the symbol name
        """
        self.assertEqual(Symbol('foo').name, 'foo')

    def test_symbol_uniqueness(self):
        """
        verify that two symbols with the same name are indeed a single object
        """
        self.assertIs(Symbol('foo'), Symbol('foo'))

    def test_different_symbols_are_not_same(self):
        """
        verify that two symbols with different names are not the same object
        """
        self.assertIsNot(Symbol('foo'), Symbol('bar'))

    def test_symbol_symbol_comparison(self):
        """
        verify that comparing symbols to symbols works
        """
        self.assertEqual(Symbol('foo'), Symbol('foo'))
        self.assertNotEqual(Symbol('foo'), Symbol('bar'))

    def test_symbol_string_comparison(self):
        """
        verify that comparing symbols to strings works
        """
        self.assertEqual(Symbol('foo'), 'foo')
        self.assertNotEqual(Symbol('foo'), 'bar')

    def test_string_symbol_comparison(self):
        """
        verify that comparing strings to symbols works
        """
        self.assertEqual('foo', Symbol('foo'))
        self.assertNotEqual('bar', Symbol('foo'))

    def test_symbol_other_comparison(self):
        """
        verify that comparing symbols to other types (or vice
        versa) is always False
        """
        self.assertFalse(
            Symbol('foo') == 1,
            "Symbol compared equal to integer")
        self.assertFalse(
            1 == Symbol('foo'),
            "integer compared equal to Symbol")
        self.assertFalse(
            Symbol('foo') != 1,
            "Symbol compared unequal to integer")
        self.assertFalse(
            1 != Symbol('foo'),
            "integer compared unequal to Symbol")


class SymbolDefTests(unittest.TestCase):
    """
    Tests for SymbolDef class
    """

    def test_implicit_symbols(self):
        """
        verify that referencing names inside SymbolDef creates symbols
        """
        class S(SymbolDef):
            a
            b
            c
        self.assertIs(S.a, Symbol('a'))
        self.assertIs(S.b, Symbol('b'))
        self.assertIs(S.c, Symbol('c'))

    def test_custom_symbols(self):
        """
        verify that assigning symbols to variables works
        """
        class S(SymbolDef):
            a = Symbol("the-a-symbol")
        self.assertIs(S.a, Symbol('the-a-symbol'))

    def test_custom_string_symbols(self):
        """
        verify that assigning strings to variables creates symbols
        """
        class S(SymbolDef):
            a = "the-a-symbol"
        self.assertIs(S.a, Symbol('the-a-symbol'))

    def test_repeated_symbol(self):
        """
        verify that repeating a symbol doesn't break anything
        """
        class S(SymbolDef):
            a
            a
        self.assertIs(S.a, Symbol('a'))
        self.assertEqual(S.get_all_symbols(), [Symbol('a')])

    def test_invalid_assignment(self):
        """
        verify that assigning other values is rejected
        """
        with self.assertRaises(ValueError) as boom:
            class S(SymbolDef):
                a = 1
        self.assertEqual(
            str(boom.exception),
            "Only Symbol() instances can be assigned here")

    def test_get_all_symbols(self):
        """
        verify that get_all_symbols() works as intended
        """
        class S(SymbolDef):
            a
            b
            c
        self.assertEqual(
            S.get_all_symbols(), [Symbol('a'), Symbol('b'), Symbol('c')])