コード例 #1
0
ファイル: test_io.py プロジェクト: dooma/Events
    def test_set(self):
        file = open(IO.filepath('test.json'), 'w')
        file.close()

        io = IO('test.json')
        io.set('{"data":[{"a":1}]}')
        self.assertEqual(io.get(), '{"data":[{"a":1}]}')

        io.set(1)
        self.assertEqual(io.get(), 1)
コード例 #2
0
ファイル: person_event.py プロジェクト: dooma/Events
    def get_all(self):
        operation = IO(self.__defaultfile)

        person_events = []

        for person_event in operation.get():
            person_events.append(PersonEvent(person_event['person_id'], person_event['event_id'], person_event['date']))

        return person_events
コード例 #3
0
ファイル: person_event.py プロジェクト: dooma/Events
    def insert(self, person_event):
        operation = IO(self.__defaultfile)

        try:
            person_events = operation.get()
        except ValueError:
            person_events = []

        person_events.append(person_event.get_serialization())
        operation.set(person_events)
コード例 #4
0
ファイル: event.py プロジェクト: dooma/Events
    def get_all(self):
        '''
        Returns all events from disk storage
        :return:
        '''
        operation = IO(self.__datafile)
        events = []
        for event in operation.get():
            instance = Event(event['date'], event['time'], event['description'], event['id'])
            events.append(instance)

        return events
コード例 #5
0
ファイル: event.py プロジェクト: dooma/Events
    def get(self, id):
        '''
        Returns an event with provided ID from disk storage
        :param id:
        :return: Event instance
        '''
        operation = IO(self.__datafile)
        for event in operation.get():
            if event['id'] == id:
                return Event(event['date'], event['time'], event['description'], event['id'])

        raise ValueError('Event not found!')
コード例 #6
0
ファイル: person.py プロジェクト: dooma/Events
    def get_all(self):
        '''
        Returns all persons from disk storage
        :return:
        '''
        operation = IO(self.__defaultfile)
        people = []

        for person in operation.get():
            person_instance = Person(person['first_name'], person['last_name'], person['address'], person['id'])
            people.append(person_instance)

        return people
コード例 #7
0
ファイル: person.py プロジェクト: dooma/Events
    def delete(self, person):
        '''
        Deletes a person from disk storage
        :param deleted_event:
        :return:
        '''
        operation = IO(self.__defaultfile)
        people = operation.get()

        for per in people:
            if per['id'] == person.get_id():
                people.remove(per)
        operation.set(people)
コード例 #8
0
ファイル: person.py プロジェクト: dooma/Events
    def update(self, person):
        '''
        Updates a person into disk storage
        :param updated_event:
        :return:
        '''
        operation = IO(self.__defaultfile)
        people = operation.get()

        for per in people:
            if per['id'] == person.get_id():
                people[people.index(per)] = person.get_serialization()

        operation.set(people)
コード例 #9
0
ファイル: test_person_event.py プロジェクト: dooma/Events
    def test_insert(self):
        repo = PersonEventRepository()

        person_event = PersonEvent(25, 61)
        repo.insert(person_event)

        person_events = repo.get_by_id(25, 61)
        self.assertEqual(len(person_events), 1)

        # Remove last appended object
        io = IO('person_event.json')
        updated_person_events = io.get()
        updated_person_events.pop()
        io.set(updated_person_events)
コード例 #10
0
ファイル: event.py プロジェクト: dooma/Events
    def delete(self, deleted_event):
        '''
        Deletes an event from disk storage
        :param deleted_event:
        :return:
        '''
        operation = IO(self.__datafile)
        events = operation.get()
        for event in events:
            if event['id'] == deleted_event.get_id():
                events.remove(event)
                break

        operation.set(events)
コード例 #11
0
ファイル: event.py プロジェクト: dooma/Events
    def update(self, updated_event):
        '''
        Updates an event into disk storage
        :param updated_event:
        :return:
        '''
        operation = IO(self.__datafile)
        events = operation.get()
        for event in events:
            if event['id'] == updated_event.get_id():
                events[events.index(event)] = updated_event.get_serialization()
                break

        operation.set(events)
コード例 #12
0
ファイル: test_io.py プロジェクト: dooma/Events
    def test_read(self):
        file = open(IO.filepath('test.json'), 'w')
        file.write('1,2,3,,5')
        file.close()

        io = IO('test.json')
        with self.assertRaisesRegex(ValueError, 'The content of test.json is not valid!'):
            io.get()

        file = open(IO.filepath('test.json'), 'w')
        file.write('invalid json')
        file.close()

        io = IO('test.json')
        with self.assertRaisesRegex(ValueError, 'The content of test.json is not valid!'):
            io.get()

        file = open(IO.filepath('test.json'), 'w')
        file.write('[]')
        file.close()

        self.assertEqual(io.get(), [])

        os.remove(IO.filepath('test.json'))
コード例 #13
0
ファイル: person.py プロジェクト: dooma/Events
    def insert(self, person):
        '''
        Add a person object into disk storage
        :param event:
        :return: None
        '''
        operation = IO(self.__defaultfile)

        try:
            people = operation.get()
        except ValueError:
            people = []

        people.append(person.get_serialization())
        operation.set(people)
コード例 #14
0
ファイル: test_event.py プロジェクト: dooma/Events
    def test_insert(self):
        io = IO('test.json')
        io.set([])

        event = Event('14/01/2015', '14:00', 'Colectiv')
        EventRepository('test.json').insert(event)

        content = io.get()
        self.assertIs(type(content), list)

        stored_event = content[0]

        self.assertEqual(stored_event['date'], '14/01/2015')
        self.assertEqual(stored_event['time'], '14:00')
        self.assertEqual(stored_event['description'], 'Colectiv')
コード例 #15
0
ファイル: event.py プロジェクト: dooma/Events
    def insert(self, event):
        '''
        Add an event object into disk storage
        :param event:
        :return: None
        '''
        operation = IO(self.__datafile)

        try:
            data = operation.get()
        except ValueError:
            data = []

        data.append(event.get_serialization())

        operation.set(data)
コード例 #16
0
ファイル: test_person.py プロジェクト: dooma/Events
    def test_insert(self):
        io = IO('test.json')
        io.set([])

        Person.set_class_id(0)
        person = Person('Vasile', 'Pop', 'Str. Calea Floresti, nr. 24')
        repo = PersonRepository('test.json')
        repo.insert(person)

        people = io.get()
        person = people[0]

        self.assertEqual(len(people), 1)
        self.assertEqual(person['id'], 0)
        self.assertEqual(person['first_name'], 'Vasile')
        self.assertEqual(person['last_name'], 'Pop')
        self.assertEqual(person['address'], 'Str. Calea Floresti, nr. 24')
コード例 #17
0
ファイル: person_event.py プロジェクト: dooma/Events
    def get_by_id(self, person_id = None, event_id = None):
        operation = IO(self.__defaultfile)

        person_events = []

        for person_event in operation.get():
            if person_id is not None and event_id is not None:
                if person_event['person_id'] == person_id and person_event['event_id'] == event_id:
                    return [PersonEvent(person_id, event_id, person_event['date'])]
            elif person_id is None:
                if person_event['event_id'] == event_id:
                    person_events.append(PersonEvent(person_event['person_id'], event_id, person_event['date']))
            else:
                if person_event['person_id'] == person_id:
                    person_events.append(PersonEvent(person_id, person_event['event_id'], person_event['date']))

        return person_events