예제 #1
0
 def __init__(self, path):
     self.read = reader.Reader(path)
     self.interpret = interpreter.Interpreter()
     self.generator = generator.Generator()
     self.string_accounts = [
         self.read.split_row_columns(i)
         for i in range(0, len(self.read.split_rows()))
     ]
     self.accounts = self.read_accounts()
예제 #2
0
 def test_split_row_columns_failure(self):
     # Verify that even empty row contains 9 columns empty as numbers
     self.reader = reader.Reader(self.path + "error")
     rows = self.reader.split_rows()
     empty_number = "   \n   \n   "
     for row in range(len(rows)):
         account_numbers = self.reader.split_row_columns(row)
         with self.subTest(account_numbers=account_numbers):
             self.assertEqual(9, len(account_numbers))
         for account_number in account_numbers:
             with self.subTest(account_number=account_number):
                 self.assertEqual(empty_number, account_number)
예제 #3
0
 def _accept(self):
     conn = None
     try:
         conn, addr = self._receive_socket.accept()
         print(addr)
         with self.lock:
             info = Packet.parse(conn.recv(self.packet_size))
             if info.type is PacketType.CONNECTION:
                 conn.send(bytes(Packet(PacketType.CONFIRMATION)))
                 time.sleep(2)  # TODO
                 info = Packet.parse(conn.recv(self.packet_size))
                 if info.type is PacketType.CONFIRMATION:
                     self._connections.append(conn)
                     new_reader = reader.Reader(conn, self.packet_size)
                     self._readers.append(new_reader)
                     new_reader.run()
                     self.ip_list.add(addr[0] + ':' + info.data)
                     self.send(
                         Packet(PacketType.IP,
                                '/' + addr[0] + ':' + info.data))
                     print('accepted')
     except OSError:
         if conn is not None:
             conn.close()
예제 #4
0
 def _connect(self, chat_host, chat_port: int):
     connection = socket.socket()
     connection.connect((chat_host, chat_port))
     connection.send(bytes(Packet(PacketType.CONNECTION)))
     info = b''
     while len(info) == 0:
         time.sleep(1)  # TODO
         info = connection.recv(self.packet_size)
     info = Packet.parse(info)
     if info.type is PacketType.CONFIRMATION:
         self._connections.append(connection)
         connection.send(
             bytes(Packet(PacketType.CONFIRMATION, str(self._server_port))))
         self._par_conn = connection
         print('connected')
         new_reader = reader.Reader(connection, self.packet_size)
         self._readers.append(new_reader)
         new_reader.run()
         self.ip_list.add(chat_host + ':' + str(chat_port))
         time.sleep(1)  # TODO
         question = Packet(PacketType.GET_IP)
         self.send(question)
         self.received.add(question.id)
         self._question_id = question.id
예제 #5
0
 def setUp(self):
     self.path = os.path.abspath("../../source_data D.txt")
     self.reader = reader.Reader(self.path)
예제 #6
0
 def test_split_rows_failure(self):
     # Verify that wrong read of file return a empty row
     self.reader = reader.Reader(self.path + "error")
     rows = self.reader.split_rows()
     self.assertEqual(1, len(rows))
     self.assertEqual([""], rows)
예제 #7
0
 def test_read_file_failure(self):
     # Verify that reader return empty string if file isn't end with txt
     self.reader = reader.Reader(self.path + "error")
     file = self.reader.get_file()
     self.assertEqual(0, len(file))
예제 #8
0
파일: lexer.py 프로젝트: londav28/chasm
 def __init__(self, src, trace=False):
     # Has to be first for our little call chain hack to work.
     self.trace = trace
     self.reader = reader.Reader(src)
     self.char = self.reader.next()