Пример #1
0
 def test_create_actors_connections_created(self):
     old_connections_number = RecordToActor.objects.all().count()
     FakeRecord(type_=RECORD_TYPE.PLACE_CHANGE_RACE,
                actors=[
                    (ACTOR_ROLE.PLACE, create_external_actor(self.place_1)),
                    (ACTOR_ROLE.PERSON,
                     create_external_actor(self.place_1.persons[0]))
                ]).create_record()
     self.assertEqual(old_connections_number + 2,
                      RecordToActor.objects.all().count())
Пример #2
0
    def test_create_method(self):

        actors = []

        for role in record_class.ACTORS:
            if role.is_PLACE:
                if (role, self.place_1) not in actors:
                    actors.append((role, self.place_1))
                else:
                    actors.append((role, self.place_2))
            elif role.is_BILL:
                actors.append((role, self.bill))
            elif role.is_PERSON:
                actors.append((role, self.place_1.persons[0]))

        record = record_class(
            actors=actors,
            text='xxx' if 'bill' in record_class.__name__.lower() else None)

        old_records_number = Record.objects.all().count()
        record.create_record()
        self.assertEqual(old_records_number + 1, Record.objects.all().count())

        for actor in list(zip(*actors))[1]:
            self.assertTrue(
                Actor.objects.filter(
                    uid=create_external_actor(actor).uid).exists())
Пример #3
0
    def test_create_method(self):

        actors = []
        substitutions = {}

        for index, argument in enumerate(record_class.SUBSTITUTIONS):
            if 'place' == argument:
                substitutions['place'] = self.place_1
            elif 'place_1' == argument:
                substitutions['place_1'] = self.place_1
            elif 'place_2' == argument:
                substitutions['place_2'] = self.place_2
            elif 'bill' == argument:
                substitutions['bill'] = self.bill.caption
            elif 'person' == argument:
                substitutions['person'] = self.place_1.persons[0]
            elif 'new_modifier' == argument:
                substitutions['new_modifier'] = CITY_MODIFIERS.FORT
            elif 'old_modifier' == argument:
                substitutions['old_modifier'] = CITY_MODIFIERS.HOLY_CITY
            elif 'new_race' == argument:
                substitutions['new_race'] = RACE.HUMAN
            elif 'old_race' == argument:
                substitutions['old_race'] = RACE.ELF
            elif 'declined_bill' == argument:
                substitutions['declined_bill'] = self.create_test_word(index)
            elif 'resource_1' == argument:
                substitutions['resource_1'] = self.create_test_word(index)
            elif 'resource_2' == argument:
                substitutions['resource_2'] = self.create_test_word(index)
            elif 'conversion' == argument:
                substitutions['conversion'] = u'some text: %d' % index
            elif 'new_name' == argument:
                substitutions['new_name'] = WordFormWrapper(self.create_test_word(index))
            elif 'old_name' == argument:
                substitutions['old_name'] = WordFormWrapper(self.create_test_word(index))
            else:
                raise Exception('unknown argument %s' % argument)

        for role in record_class.ACTORS:
            if role.is_PLACE:
                if (role, self.place_1) not in actors:
                    actors.append((role, self.place_1))
                else:
                    actors.append((role, self.place_2))
            elif role.is_BILL:
                actors.append((role, self.bill))
            elif role.is_PERSON:
                actors.append((role, self.place_1.persons[0]))

        record = record_class(actors=actors,
                              substitutions=substitutions,
                              text='xxx' if 'bill' in record_class.__name__.lower() else None)

        old_records_number = Record.objects.all().count()
        record.create_record()
        self.assertEqual(old_records_number + 1, Record.objects.all().count())

        for actor in zip(*actors)[1]:
            self.assertTrue(Actor.objects.filter(uid=create_external_actor(actor).uid).exists())
Пример #4
0
 def test_actor_not_created_second_time(self):
     external_actor = create_external_actor(self.place_3)
     self.assertEqual(
         Actor.objects.filter(uid=external_actor.uid).count(), 1)
     record = FakeRecord(type_=RECORD_TYPE.PLACE_CHANGE_RACE,
                         index=0,
                         turn_number=0).create_record()
     RecordToActorPrototype.create(ACTOR_ROLE.PLACE, record, external_actor)
     self.assertEqual(
         Actor.objects.filter(uid=external_actor.uid).count(), 1)
Пример #5
0
    def __init__(self, actors, substitutions, text=None):

        self.text = text

        self.actors = [ (role, create_external_actor(actor)) for role, actor in actors ]
        self.substitutions = substitutions

        if not self.IGNORE_ACTORS_CHECK and sorted(zip(*self.actors)[0]) != sorted(self.ACTORS):
            raise ChronicleException('wrong actors for chronicle record %r versus %r' % (zip(*self.actors)[0], self.ACTORS))
        if set(self.substitutions.keys()) != set(self.SUBSTITUTIONS):
            raise ChronicleException('wrong substitutions for chronicle record %r' % set(self.substitutions.keys()).symmetric_difference(self.SUBSTITUTIONS))

        self.created_at_turn = TimePrototype.get_current_turn_number()
Пример #6
0
    def __init__(self, actors, substitutions, text=None):

        self.text = text

        self.actors = [ (role, create_external_actor(actor)) for role, actor in actors ]
        self.substitutions = substitutions

        if not self.IGNORE_ACTORS_CHECK and sorted(zip(*self.actors)[0]) != sorted(self.ACTORS):
            raise ChronicleException('wrong actors for chronicle record %r versus %r' % (zip(*self.actors)[0], self.ACTORS))
        if set(self.substitutions.keys()) != set(self.SUBSTITUTIONS):
            raise ChronicleException('wrong substitutions for chronicle record %r' % set(self.substitutions.keys()).symmetric_difference(self.SUBSTITUTIONS))

        self.created_at_turn = TimePrototype.get_current_turn_number()
Пример #7
0
    def __init__(self, actors, text=None):

        self.text = text

        self.actors = [(role, create_external_actor(actor))
                       for role, actor in actors]

        if not self.IGNORE_ACTORS_CHECK and set(next(
                zip(*self.actors))) != set(self.ACTORS):
            raise ChronicleException(
                'wrong actors for chronicle record %r versus %r' %
                (next(zip(*self.actors)), self.ACTORS))

        self.created_at_turn = turn.number()
Пример #8
0
    def test_create_method(self):

        actors = []

        for role in record_class.ACTORS:
            if role.is_PLACE:
                if (role, self.place_1) not in actors:
                    actors.append((role, self.place_1))
                else:
                    actors.append((role, self.place_2))
            elif role.is_BILL:
                actors.append((role, self.bill))
            elif role.is_PERSON:
                actors.append((role, self.place_1.persons[0]))

        record = record_class(actors=actors,
                              text='xxx' if 'bill' in record_class.__name__.lower() else None)

        old_records_number = Record.objects.all().count()
        record.create_record()
        self.assertEqual(old_records_number + 1, Record.objects.all().count())

        for actor in list(zip(*actors))[1]:
            self.assertTrue(Actor.objects.filter(uid=create_external_actor(actor).uid).exists())
Пример #9
0
 def test_create_actors_connections_created(self):
     old_connections_number = RecordToActor.objects.all().count()
     FakeRecord(type_=RECORD_TYPE.PLACE_CHANGE_RACE,
                actors=[(ACTOR_ROLE.PLACE, create_external_actor(self.place_1)),
                        (ACTOR_ROLE.PERSON, create_external_actor(self.place_1.persons[0]))]).create_record()
     self.assertEqual(old_connections_number + 2, RecordToActor.objects.all().count())
Пример #10
0
 def test_actor_not_created_second_time(self):
     external_actor = create_external_actor(self.place_3)
     self.assertEqual(Actor.objects.filter(uid=external_actor.uid).count(), 1)
     record = FakeRecord(type_=RECORD_TYPE.PLACE_CHANGE_RACE, index=0, turn_number=0).create_record()
     RecordToActorPrototype.create(ACTOR_ROLE.PLACE, record, external_actor)
     self.assertEqual(Actor.objects.filter(uid=external_actor.uid).count(), 1)