Skip to content

Conversation

@DenisZhadan
Copy link

@DenisZhadan DenisZhadan commented Sep 25, 2019

Addressee is parent for ContactAddress
ContactAddress is parent for ReceiverAddressee

Address->ContactAddress->ReceiverAddress

      <xsd:complexType abstract="true" name="Address">
        <xsd:sequence>
          <xsd:element name="person_name" type="xsd:string" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:group name="Contact">
        <xsd:sequence>
          <xsd:element form="unqualified" minOccurs="0" name="phone" type="xsd:string" />
          <xsd:element form="unqualified" minOccurs="0" name="email" type="xsd:string" />
        </xsd:sequence>
      </xsd:group>

      <xsd:complexType name="ContactAddress">
        <xsd:complexContent>
          <xsd:extension base="Address">
            <xsd:group ref="Contact" />
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>


      <xsd:complexType name="ReceiverAddress">
        <xsd:complexContent>
          <xsd:extension base="ContactAddress">
            <xsd:sequence>
              <xsd:element minOccurs="0" name="person_id" type="xsd:string" />
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>

address = factory_ns0.Address()
address = {Address} {'person_name': None}
Result is correct.

contact_address = factory_ns0.ContactAddress()
contact_address = {ContactAddress} {'person_name': None, 'phone': None, 'email': None}
Result is correct.

receiver_address = factory_ns0.ReceiverAddress()
receiver_addressee = {ReceiverAddressee} {'person_id': None}
But result is wrong! Not present fields: person_name, email, phone

Now all fields from parent present in child.

```
Addressee is parent for Contact
Contact is parent for ReceiverAddressee

Address->ContactAddress->ReceiverAddress

      <xsd:complexType abstract="true" name="Address">
        <xsd:sequence>
          <xsd:element name="person_name" type="xsd:string" />
        </xsd:sequence>
      </xsd:complexType>

      <xsd:group name="Contact">
        <xsd:sequence>
          <xsd:element form="unqualified" minOccurs="0" name="phone" type="xsd:string" />
          <xsd:element form="unqualified" minOccurs="0" name="email" type="xsd:string" />
        </xsd:sequence>
      </xsd:group>

      <xsd:complexType name="ContactAddress">
        <xsd:complexContent>
          <xsd:extension base="Address">
            <xsd:group ref="Contact" />
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>


      <xsd:complexType name="ReceiverAddress">
        <xsd:complexContent>
          <xsd:extension base="ContactAddress">
            <xsd:sequence>
              <xsd:element minOccurs="0" name="person_id" type="xsd:string" />
            </xsd:sequence>
          </xsd:extension>
        </xsd:complexContent>
      </xsd:complexType>

address = factory_ns0.Address()
address = {Address} {'person_name': None}
Result is correct.

contact_address = factory_ns0.ContactAddress()
contact_address = {ContactAddress} {'person_name': None, 'phone': None, 'email': None}
Result is correct.

receiver_address = factory_ns0.ReceiverAddress()
receiver_addressee = {ReceiverAddressee} {'person_id': None}
is wrong! Not present fields: person_name, email, phone
```
@codecov
Copy link

codecov bot commented Sep 25, 2019

Codecov Report

Merging #1011 into master will increase coverage by 0.01%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #1011      +/-   ##
==========================================
+ Coverage   89.32%   89.34%   +0.01%     
==========================================
  Files          65       65              
  Lines        4845     4850       +5     
  Branches      850      852       +2     
==========================================
+ Hits         4328     4333       +5     
- Misses        333      335       +2     
+ Partials      184      182       -2
Impacted Files Coverage Δ
src/zeep/xsd/types/complex.py 92.33% <0%> (-1.42%) ⬇️
src/zeep/cache.py 84.9% <0%> (+3.77%) ⬆️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant