allure-python icon indicating copy to clipboard operation
allure-python copied to clipboard

Force cast features label values to string

Open Quron opened this issue 3 years ago • 1 comments

I'm submitting a ...

  • feature request

What is the current behavior?

https://github.com/allure-framework/allure-python/blob/50cb0ec0f388928eabf1fc5af92a009851d34965/allure-python-commons/src/_allure.py#L45-L46

Features values set as is.

What is the expected behavior?

Cast features to string

What is the motivation / use case for changing the behavior?

For easily cast to feature name from dataclasses

Its look better

@allure.feature(Features.some_feature1, Features.some_feature2)

vs

@allure.feature(str(Features.some_feature1), str(Features.some_feature2))

Please tell us about your environment:

Other information

Quron avatar Aug 25 '21 18:08 Quron

If set object in label, test its ok, but report generation is failing

Could not read test result file /var/lib/jenkins/workspace/test/allure-results/d7566060-f94f-4f90-9edf-760ce70d8154-result.json
13:29:50 GMT+03:00 com.fasterxml.jackson.databind.JsonMappingException: Unexpected end-of-input within/between Object entries
13:29:50 GMT+03:00  at [Source: (sun.nio.ch.ChannelInputStream); line: 1, column: 12027] (through reference chain: io.qameta.allure.model.TestResult["labels"]->java.util.ArrayList[2])
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:394)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.JsonMappingException.wrapWithPath(JsonMappingException.java:365)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:302)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:27)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.deser.impl.MethodProperty.deserializeAndSet(MethodProperty.java:127)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:288)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4013)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3070)
13:29:50 GMT+03:00 	at io.qameta.allure.allure2.Allure2Plugin.readTestResult(Allure2Plugin.java:344)
13:29:50 GMT+03:00 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
13:29:50 GMT+03:00 	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
13:29:50 GMT+03:00 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
13:29:50 GMT+03:00 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
13:29:50 GMT+03:00 	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
13:29:50 GMT+03:00 	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
13:29:50 GMT+03:00 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
13:29:50 GMT+03:00 	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
13:29:50 GMT+03:00 	at io.qameta.allure.allure2.Allure2Plugin.readResults(Allure2Plugin.java:104)
13:29:50 GMT+03:00 	at io.qameta.allure.ReportGenerator.lambda$readResults$0(ReportGenerator.java:47)
13:29:50 GMT+03:00 	at java.util.ArrayList.forEach(ArrayList.java:1257)
13:29:50 GMT+03:00 	at io.qameta.allure.ReportGenerator.readResults(ReportGenerator.java:47)
13:29:50 GMT+03:00 	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
13:29:50 GMT+03:00 	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
13:29:50 GMT+03:00 	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
13:29:50 GMT+03:00 	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
13:29:50 GMT+03:00 	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
13:29:50 GMT+03:00 	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
13:29:50 GMT+03:00 	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
13:29:50 GMT+03:00 	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)
13:29:50 GMT+03:00 	at io.qameta.allure.ReportGenerator.generate(ReportGenerator.java:69)
13:29:50 GMT+03:00 	at io.qameta.allure.ReportGenerator.generate(ReportGenerator.java:58)
13:29:50 GMT+03:00 	at io.qameta.allure.Commands.generate(Commands.java:104)
13:29:50 GMT+03:00 	at io.qameta.allure.CommandLine.run(CommandLine.java:152)
13:29:50 GMT+03:00 	at java.util.Optional.orElseGet(Optional.java:267)
13:29:50 GMT+03:00 	at io.qameta.allure.CommandLine.main(CommandLine.java:88)
13:29:50 GMT+03:00 Caused by: com.fasterxml.jackson.core.io.JsonEOFException: Unexpected end-of-input within/between Object entries
13:29:50 GMT+03:00  at [Source: (sun.nio.ch.ChannelInputStream); line: 1, column: 16071]
13:29:50 GMT+03:00 	at com.fasterxml.jackson.core.base.ParserMinimalBase._reportInvalidEOF(ParserMinimalBase.java:618)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipColon2(UTF8StreamJsonParser.java:3096)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipColon(UTF8StreamJsonParser.java:3011)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextFieldName(UTF8StreamJsonParser.java:1009)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:295)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:151)
13:29:50 GMT+03:00 	at com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:286)
13:29:50 GMT+03:00 	... 34 more

Because plugin generate invalid json image

Quron avatar Sep 01 '21 11:09 Quron