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())
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())
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())
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)
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()
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()
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())
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())
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)